// export def_base_level , def_amount_of_people , def_skill_level , def_starting_resources , def_shipments_density , def_shared_vision , def_people_respawning ; export is_depot , number_of_breastworks , number_of_people , skill_level , starting_crates , starting_resources , shipments_density , morale_decreasing_time , amount_of_apemen , amount_of_siberit , respawning_time_min , respawning_time_max , ai_american1 , ai_american2 , ai_russian1 , ai_russian2 , DifficultyC , def_ai_american1 , def_ai_american2 , def_ai_russian1 , def_ai_russian2 , def_difficulty ; export Side_Teams , Teams ; export Side_Positions , Side_Nations , Team_Game ; export Position_Sides ; export depot_def , breastworks_def , start_def , normal_oil_deposits_locations , extra_oil_deposits_locations , normal_sib_deposits_locations , extra_sib_deposits_locations , battle_flags_id ; export p1 , p2 , p3 , p4 , p5 ; var commander ; var global_units , global_defined , soldiers_created ; var neng , nsci , nmech , nsol ; function read_multiplayer_and_game_parameters ; var i ; begin
   0: LD_INT 0
   2: PPUSH
   3: PPUSH
// if Multiplayer then
   4: LD_OWVAR 4
   8: IFFALSE 62
// begin Your_Side := mp_player_side ;
  10: LD_ADDR_OWVAR 2
  14: PUSH
  15: LD_OWVAR 7
  19: ST_TO_ADDR
// Side_Positions := mp_sides_positions ;
  20: LD_ADDR_EXP 32
  24: PUSH
  25: LD_OWVAR 17
  29: ST_TO_ADDR
// Side_Teams := mp_sides_teams ;
  30: LD_ADDR_EXP 30
  34: PUSH
  35: LD_OWVAR 15
  39: ST_TO_ADDR
// Side_Nations := mp_sides_nations ;
  40: LD_ADDR_EXP 33
  44: PUSH
  45: LD_OWVAR 16
  49: ST_TO_ADDR
// Teams := mp_teams ;
  50: LD_ADDR_EXP 31
  54: PUSH
  55: LD_OWVAR 12
  59: ST_TO_ADDR
// end else
  60: GO 236
// begin Your_Side := 1 ;
  62: LD_ADDR_OWVAR 2
  66: PUSH
  67: LD_INT 1
  69: ST_TO_ADDR
// Side_Positions := [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] ;
  70: LD_ADDR_EXP 32
  74: PUSH
  75: LD_INT 0
  77: PUSH
  78: LD_INT 0
  80: PUSH
  81: LD_INT 0
  83: PUSH
  84: LD_INT 0
  86: PUSH
  87: LD_INT 0
  89: PUSH
  90: LD_INT 0
  92: PUSH
  93: LD_INT 0
  95: PUSH
  96: LD_INT 0
  98: PUSH
  99: EMPTY
 100: LIST
 101: LIST
 102: LIST
 103: LIST
 104: LIST
 105: LIST
 106: LIST
 107: LIST
 108: ST_TO_ADDR
// Side_Teams := [ 1 , 1 , 3 , 4 , 5 , 0 , 0 , 0 ] ;
 109: LD_ADDR_EXP 30
 113: PUSH
 114: LD_INT 1
 116: PUSH
 117: LD_INT 1
 119: PUSH
 120: LD_INT 3
 122: PUSH
 123: LD_INT 4
 125: PUSH
 126: LD_INT 5
 128: PUSH
 129: LD_INT 0
 131: PUSH
 132: LD_INT 0
 134: PUSH
 135: LD_INT 0
 137: PUSH
 138: EMPTY
 139: LIST
 140: LIST
 141: LIST
 142: LIST
 143: LIST
 144: LIST
 145: LIST
 146: LIST
 147: ST_TO_ADDR
// Side_Nations := [ 1 , 2 , 3 , 1 , 2 , 3 , 0 , 0 ] ;
 148: LD_ADDR_EXP 33
 152: PUSH
 153: LD_INT 1
 155: PUSH
 156: LD_INT 2
 158: PUSH
 159: LD_INT 3
 161: PUSH
 162: LD_INT 1
 164: PUSH
 165: LD_INT 2
 167: PUSH
 168: LD_INT 3
 170: PUSH
 171: LD_INT 0
 173: PUSH
 174: LD_INT 0
 176: PUSH
 177: EMPTY
 178: LIST
 179: LIST
 180: LIST
 181: LIST
 182: LIST
 183: LIST
 184: LIST
 185: LIST
 186: ST_TO_ADDR
// Teams := [ [ 1 ] , [ 2 ] , [ 3 ] , [ 4 ] , [ 5 ] , [ 6 ] ] ;
 187: LD_ADDR_EXP 31
 191: PUSH
 192: LD_INT 1
 194: PUSH
 195: EMPTY
 196: LIST
 197: PUSH
 198: LD_INT 2
 200: PUSH
 201: EMPTY
 202: LIST
 203: PUSH
 204: LD_INT 3
 206: PUSH
 207: EMPTY
 208: LIST
 209: PUSH
 210: LD_INT 4
 212: PUSH
 213: EMPTY
 214: LIST
 215: PUSH
 216: LD_INT 5
 218: PUSH
 219: EMPTY
 220: LIST
 221: PUSH
 222: LD_INT 6
 224: PUSH
 225: EMPTY
 226: LIST
 227: PUSH
 228: EMPTY
 229: LIST
 230: LIST
 231: LIST
 232: LIST
 233: LIST
 234: LIST
 235: ST_TO_ADDR
// end ; for i := 1 to 8 do
 236: LD_ADDR_VAR 0 2
 240: PUSH
 241: DOUBLE
 242: LD_INT 1
 244: DEC
 245: ST_TO_ADDR
 246: LD_INT 8
 248: PUSH
 249: FOR_TO
 250: IFFALSE 288
// if Multiplayer_GetPlayerIsSpec ( i ) then
 252: LD_VAR 0 2
 256: PPUSH
 257: CALL_OW 530
 261: IFFALSE 286
// Side_Positions := Replace ( Side_Positions , i , 0 ) ;
 263: LD_ADDR_EXP 32
 267: PUSH
 268: LD_EXP 32
 272: PPUSH
 273: LD_VAR 0 2
 277: PPUSH
 278: LD_INT 0
 280: PPUSH
 281: CALL_OW 1
 285: ST_TO_ADDR
 286: GO 249
 288: POP
 289: POP
// Position_Sides := [ 0 , 0 , 0 , 0 , 0 , 0 ] ;
 290: LD_ADDR_EXP 35
 294: PUSH
 295: LD_INT 0
 297: PUSH
 298: LD_INT 0
 300: PUSH
 301: LD_INT 0
 303: PUSH
 304: LD_INT 0
 306: PUSH
 307: LD_INT 0
 309: PUSH
 310: LD_INT 0
 312: PUSH
 313: EMPTY
 314: LIST
 315: LIST
 316: LIST
 317: LIST
 318: LIST
 319: LIST
 320: ST_TO_ADDR
// for i := 1 to 8 do
 321: LD_ADDR_VAR 0 2
 325: PUSH
 326: DOUBLE
 327: LD_INT 1
 329: DEC
 330: ST_TO_ADDR
 331: LD_INT 8
 333: PUSH
 334: FOR_TO
 335: IFFALSE 382
// if Side_Positions [ i ] then
 337: LD_EXP 32
 341: PUSH
 342: LD_VAR 0 2
 346: ARRAY
 347: IFFALSE 380
// Position_Sides := Replace ( Position_Sides , Side_Positions [ i ] , i ) ;
 349: LD_ADDR_EXP 35
 353: PUSH
 354: LD_EXP 35
 358: PPUSH
 359: LD_EXP 32
 363: PUSH
 364: LD_VAR 0 2
 368: ARRAY
 369: PPUSH
 370: LD_VAR 0 2
 374: PPUSH
 375: CALL_OW 1
 379: ST_TO_ADDR
 380: GO 334
 382: POP
 383: POP
// Team_Game := Side_Teams [ your_side ] ;
 384: LD_ADDR_EXP 34
 388: PUSH
 389: LD_EXP 30
 393: PUSH
 394: LD_OWVAR 2
 398: ARRAY
 399: ST_TO_ADDR
// if Multiplayer then
 400: LD_OWVAR 4
 404: IFFALSE 564
// begin def_base_level := GetMultiplayerSetting ( 0 ) ;
 406: LD_ADDR_EXP 1
 410: PUSH
 411: LD_INT 0
 413: PPUSH
 414: CALL_OW 426
 418: ST_TO_ADDR
// def_amount_of_people := GetMultiplayerSetting ( 1 ) ;
 419: LD_ADDR_EXP 2
 423: PUSH
 424: LD_INT 1
 426: PPUSH
 427: CALL_OW 426
 431: ST_TO_ADDR
// def_skill_level := GetMultiplayerSetting ( 2 ) ;
 432: LD_ADDR_EXP 3
 436: PUSH
 437: LD_INT 2
 439: PPUSH
 440: CALL_OW 426
 444: ST_TO_ADDR
// def_starting_resources := GetMultiplayerSetting ( 3 ) ;
 445: LD_ADDR_EXP 4
 449: PUSH
 450: LD_INT 3
 452: PPUSH
 453: CALL_OW 426
 457: ST_TO_ADDR
// def_shipments_density := GetMultiplayerSetting ( 4 ) ;
 458: LD_ADDR_EXP 5
 462: PUSH
 463: LD_INT 4
 465: PPUSH
 466: CALL_OW 426
 470: ST_TO_ADDR
// def_shared_vision := GetMultiplayerSetting ( 10 ) ;
 471: LD_ADDR_EXP 6
 475: PUSH
 476: LD_INT 10
 478: PPUSH
 479: CALL_OW 426
 483: ST_TO_ADDR
// def_people_respawning := GetMultiplayerSetting ( 13 ) ;
 484: LD_ADDR_EXP 7
 488: PUSH
 489: LD_INT 13
 491: PPUSH
 492: CALL_OW 426
 496: ST_TO_ADDR
// def_ai_american1 := GetMultiplayerSetting ( 14 ) ;
 497: LD_ADDR_EXP 25
 501: PUSH
 502: LD_INT 14
 504: PPUSH
 505: CALL_OW 426
 509: ST_TO_ADDR
// def_ai_american2 := GetMultiplayerSetting ( 14 ) ;
 510: LD_ADDR_EXP 26
 514: PUSH
 515: LD_INT 14
 517: PPUSH
 518: CALL_OW 426
 522: ST_TO_ADDR
// def_ai_russian1 := GetMultiplayerSetting ( 15 ) ;
 523: LD_ADDR_EXP 27
 527: PUSH
 528: LD_INT 15
 530: PPUSH
 531: CALL_OW 426
 535: ST_TO_ADDR
// def_ai_russian2 := GetMultiplayerSetting ( 15 ) ;
 536: LD_ADDR_EXP 28
 540: PUSH
 541: LD_INT 15
 543: PPUSH
 544: CALL_OW 426
 548: ST_TO_ADDR
// def_difficulty := GetMultiplayerSetting ( 17 ) ;
 549: LD_ADDR_EXP 29
 553: PUSH
 554: LD_INT 17
 556: PPUSH
 557: CALL_OW 426
 561: ST_TO_ADDR
// end else
 562: GO 640
// begin Randomize ;
 564: CALL_OW 10
// def_base_level := 2 ;
 568: LD_ADDR_EXP 1
 572: PUSH
 573: LD_INT 2
 575: ST_TO_ADDR
// def_amount_of_people := 1 ;
 576: LD_ADDR_EXP 2
 580: PUSH
 581: LD_INT 1
 583: ST_TO_ADDR
// def_skill_level := 1 ;
 584: LD_ADDR_EXP 3
 588: PUSH
 589: LD_INT 1
 591: ST_TO_ADDR
// def_starting_resources := 2 ;
 592: LD_ADDR_EXP 4
 596: PUSH
 597: LD_INT 2
 599: ST_TO_ADDR
// def_shipments_density := 1 ;
 600: LD_ADDR_EXP 5
 604: PUSH
 605: LD_INT 1
 607: ST_TO_ADDR
// def_shared_vision := 1 ;
 608: LD_ADDR_EXP 6
 612: PUSH
 613: LD_INT 1
 615: ST_TO_ADDR
// def_people_respawning := 2 ;
 616: LD_ADDR_EXP 7
 620: PUSH
 621: LD_INT 2
 623: ST_TO_ADDR
// def_ai_russian1 = 1 ;
 624: LD_ADDR_EXP 27
 628: PUSH
 629: LD_INT 1
 631: ST_TO_ADDR
// def_ai_russian2 = 1 ;
 632: LD_ADDR_EXP 28
 636: PUSH
 637: LD_INT 1
 639: ST_TO_ADDR
// end ; is_depot := [ 0 , 1 , 2 ] [ def_base_level + 1 ] ;
 640: LD_ADDR_EXP 8
 644: PUSH
 645: LD_INT 0
 647: PUSH
 648: LD_INT 1
 650: PUSH
 651: LD_INT 2
 653: PUSH
 654: EMPTY
 655: LIST
 656: LIST
 657: LIST
 658: PUSH
 659: LD_EXP 1
 663: PUSH
 664: LD_INT 1
 666: PLUS
 667: ARRAY
 668: ST_TO_ADDR
// number_of_breastworks := [ 0 , 0 , 2 ] [ def_base_level + 1 ] ;
 669: LD_ADDR_EXP 9
 673: PUSH
 674: LD_INT 0
 676: PUSH
 677: LD_INT 0
 679: PUSH
 680: LD_INT 2
 682: PUSH
 683: EMPTY
 684: LIST
 685: LIST
 686: LIST
 687: PUSH
 688: LD_EXP 1
 692: PUSH
 693: LD_INT 1
 695: PLUS
 696: ARRAY
 697: ST_TO_ADDR
// number_of_people := [ 9 , 12 , 15 , 24 ] [ def_amount_of_people + 1 ] ;
 698: LD_ADDR_EXP 10
 702: PUSH
 703: LD_INT 9
 705: PUSH
 706: LD_INT 12
 708: PUSH
 709: LD_INT 15
 711: PUSH
 712: LD_INT 24
 714: PUSH
 715: EMPTY
 716: LIST
 717: LIST
 718: LIST
 719: LIST
 720: PUSH
 721: LD_EXP 2
 725: PUSH
 726: LD_INT 1
 728: PLUS
 729: ARRAY
 730: ST_TO_ADDR
// skill_level := [ 3 , 5 , 6 , 7 ] [ def_skill_level + 1 ] ;
 731: LD_ADDR_EXP 11
 735: PUSH
 736: LD_INT 3
 738: PUSH
 739: LD_INT 5
 741: PUSH
 742: LD_INT 6
 744: PUSH
 745: LD_INT 7
 747: PUSH
 748: EMPTY
 749: LIST
 750: LIST
 751: LIST
 752: LIST
 753: PUSH
 754: LD_EXP 3
 758: PUSH
 759: LD_INT 1
 761: PLUS
 762: ARRAY
 763: ST_TO_ADDR
// starting_resources := [ [ 0 , 0 , 0 ] , [ 30 , 30 , 0 ] , [ 50 , 50 , 0 ] , [ 80 , 60 , 0 ] ] [ def_starting_resources + 1 ] ;
 764: LD_ADDR_EXP 13
 768: PUSH
 769: LD_INT 0
 771: PUSH
 772: LD_INT 0
 774: PUSH
 775: LD_INT 0
 777: PUSH
 778: EMPTY
 779: LIST
 780: LIST
 781: LIST
 782: PUSH
 783: LD_INT 30
 785: PUSH
 786: LD_INT 30
 788: PUSH
 789: LD_INT 0
 791: PUSH
 792: EMPTY
 793: LIST
 794: LIST
 795: LIST
 796: PUSH
 797: LD_INT 50
 799: PUSH
 800: LD_INT 50
 802: PUSH
 803: LD_INT 0
 805: PUSH
 806: EMPTY
 807: LIST
 808: LIST
 809: LIST
 810: PUSH
 811: LD_INT 80
 813: PUSH
 814: LD_INT 60
 816: PUSH
 817: LD_INT 0
 819: PUSH
 820: EMPTY
 821: LIST
 822: LIST
 823: LIST
 824: PUSH
 825: EMPTY
 826: LIST
 827: LIST
 828: LIST
 829: LIST
 830: PUSH
 831: LD_EXP 4
 835: PUSH
 836: LD_INT 1
 838: PLUS
 839: ARRAY
 840: ST_TO_ADDR
// starting_crates := [ [ 10 ] , [ 7 , 14 ] , [ 6 , 12 , 18 ] , [ 5 , 10 , 15 , 20 ] ] [ def_starting_resources + 1 ] ;
 841: LD_ADDR_EXP 12
 845: PUSH
 846: LD_INT 10
 848: PUSH
 849: EMPTY
 850: LIST
 851: PUSH
 852: LD_INT 7
 854: PUSH
 855: LD_INT 14
 857: PUSH
 858: EMPTY
 859: LIST
 860: LIST
 861: PUSH
 862: LD_INT 6
 864: PUSH
 865: LD_INT 12
 867: PUSH
 868: LD_INT 18
 870: PUSH
 871: EMPTY
 872: LIST
 873: LIST
 874: LIST
 875: PUSH
 876: LD_INT 5
 878: PUSH
 879: LD_INT 10
 881: PUSH
 882: LD_INT 15
 884: PUSH
 885: LD_INT 20
 887: PUSH
 888: EMPTY
 889: LIST
 890: LIST
 891: LIST
 892: LIST
 893: PUSH
 894: EMPTY
 895: LIST
 896: LIST
 897: LIST
 898: LIST
 899: PUSH
 900: LD_EXP 4
 904: PUSH
 905: LD_INT 1
 907: PLUS
 908: ARRAY
 909: ST_TO_ADDR
// shipments_density := [ 150 , 125 , 100 , 50 ] [ def_shipments_density + 1 ] ;
 910: LD_ADDR_EXP 14
 914: PUSH
 915: LD_INT 150
 917: PUSH
 918: LD_INT 125
 920: PUSH
 921: LD_INT 100
 923: PUSH
 924: LD_INT 50
 926: PUSH
 927: EMPTY
 928: LIST
 929: LIST
 930: LIST
 931: LIST
 932: PUSH
 933: LD_EXP 5
 937: PUSH
 938: LD_INT 1
 940: PLUS
 941: ARRAY
 942: ST_TO_ADDR
// respawning_time_min := [ 0 0$0 , 5 5$00 , 3 3$0 ] [ def_people_respawning + 1 ] ;
 943: LD_ADDR_EXP 18
 947: PUSH
 948: LD_INT 0
 950: PUSH
 951: LD_INT 10500
 953: PUSH
 954: LD_INT 6300
 956: PUSH
 957: EMPTY
 958: LIST
 959: LIST
 960: LIST
 961: PUSH
 962: LD_EXP 7
 966: PUSH
 967: LD_INT 1
 969: PLUS
 970: ARRAY
 971: ST_TO_ADDR
// respawning_time_max := [ 0 0$0 , 15 15$00 , 5 5$0 ] [ def_people_respawning + 1 ] ;
 972: LD_ADDR_EXP 19
 976: PUSH
 977: LD_INT 0
 979: PUSH
 980: LD_INT 31500
 982: PUSH
 983: LD_INT 10500
 985: PUSH
 986: EMPTY
 987: LIST
 988: LIST
 989: LIST
 990: PUSH
 991: LD_EXP 7
 995: PUSH
 996: LD_INT 1
 998: PLUS
 999: ARRAY
1000: ST_TO_ADDR
// ai_american1 := [ 0 , 1 ] [ def_ai_american1 + 1 ] ;
1001: LD_ADDR_EXP 20
1005: PUSH
1006: LD_INT 0
1008: PUSH
1009: LD_INT 1
1011: PUSH
1012: EMPTY
1013: LIST
1014: LIST
1015: PUSH
1016: LD_EXP 25
1020: PUSH
1021: LD_INT 1
1023: PLUS
1024: ARRAY
1025: ST_TO_ADDR
// ai_american2 := [ 0 , 1 ] [ def_ai_american2 + 1 ] ;
1026: LD_ADDR_EXP 21
1030: PUSH
1031: LD_INT 0
1033: PUSH
1034: LD_INT 1
1036: PUSH
1037: EMPTY
1038: LIST
1039: LIST
1040: PUSH
1041: LD_EXP 26
1045: PUSH
1046: LD_INT 1
1048: PLUS
1049: ARRAY
1050: ST_TO_ADDR
// ai_russian1 := [ 0 , 1 ] [ def_ai_russian1 + 1 ] ;
1051: LD_ADDR_EXP 22
1055: PUSH
1056: LD_INT 0
1058: PUSH
1059: LD_INT 1
1061: PUSH
1062: EMPTY
1063: LIST
1064: LIST
1065: PUSH
1066: LD_EXP 27
1070: PUSH
1071: LD_INT 1
1073: PLUS
1074: ARRAY
1075: ST_TO_ADDR
// ai_russian2 := [ 0 , 1 ] [ def_ai_russian2 + 1 ] ;
1076: LD_ADDR_EXP 23
1080: PUSH
1081: LD_INT 0
1083: PUSH
1084: LD_INT 1
1086: PUSH
1087: EMPTY
1088: LIST
1089: LIST
1090: PUSH
1091: LD_EXP 28
1095: PUSH
1096: LD_INT 1
1098: PLUS
1099: ARRAY
1100: ST_TO_ADDR
// difficultyC := [ 3 , 5 , 7 , 8 ] [ def_difficulty + 1 ] ;
1101: LD_ADDR_EXP 24
1105: PUSH
1106: LD_INT 3
1108: PUSH
1109: LD_INT 5
1111: PUSH
1112: LD_INT 7
1114: PUSH
1115: LD_INT 8
1117: PUSH
1118: EMPTY
1119: LIST
1120: LIST
1121: LIST
1122: LIST
1123: PUSH
1124: LD_EXP 29
1128: PUSH
1129: LD_INT 1
1131: PLUS
1132: ARRAY
1133: ST_TO_ADDR
// end ;
1134: LD_VAR 0 1
1138: RET
// function init_map ; var i , j ; begin
1139: LD_INT 0
1141: PPUSH
1142: PPUSH
1143: PPUSH
// depot_def := [ [ 24 , 5 , 2 ] , [ 66 , 4 , 2 ] , [ 101 , 81 , 1 ] , [ 97 , 155 , 0 ] ] ;
1144: LD_ADDR_EXP 36
1148: PUSH
1149: LD_INT 24
1151: PUSH
1152: LD_INT 5
1154: PUSH
1155: LD_INT 2
1157: PUSH
1158: EMPTY
1159: LIST
1160: LIST
1161: LIST
1162: PUSH
1163: LD_INT 66
1165: PUSH
1166: LD_INT 4
1168: PUSH
1169: LD_INT 2
1171: PUSH
1172: EMPTY
1173: LIST
1174: LIST
1175: LIST
1176: PUSH
1177: LD_INT 101
1179: PUSH
1180: LD_INT 81
1182: PUSH
1183: LD_INT 1
1185: PUSH
1186: EMPTY
1187: LIST
1188: LIST
1189: LIST
1190: PUSH
1191: LD_INT 97
1193: PUSH
1194: LD_INT 155
1196: PUSH
1197: LD_INT 0
1199: PUSH
1200: EMPTY
1201: LIST
1202: LIST
1203: LIST
1204: PUSH
1205: EMPTY
1206: LIST
1207: LIST
1208: LIST
1209: LIST
1210: ST_TO_ADDR
// for i in depot_def do
1211: LD_ADDR_VAR 0 2
1215: PUSH
1216: LD_EXP 36
1220: PUSH
1221: FOR_IN
1222: IFFALSE 1296
// start_def := start_def ^ [ [ ShiftX ( i [ 1 ] , i [ 3 ] , 10 ) , ShiftY ( i [ 2 ] , i [ 3 ] , 10 ) ] ] ;
1224: LD_ADDR_EXP 38
1228: PUSH
1229: LD_EXP 38
1233: PUSH
1234: LD_VAR 0 2
1238: PUSH
1239: LD_INT 1
1241: ARRAY
1242: PPUSH
1243: LD_VAR 0 2
1247: PUSH
1248: LD_INT 3
1250: ARRAY
1251: PPUSH
1252: LD_INT 10
1254: PPUSH
1255: CALL_OW 272
1259: PUSH
1260: LD_VAR 0 2
1264: PUSH
1265: LD_INT 2
1267: ARRAY
1268: PPUSH
1269: LD_VAR 0 2
1273: PUSH
1274: LD_INT 3
1276: ARRAY
1277: PPUSH
1278: LD_INT 10
1280: PPUSH
1281: CALL_OW 273
1285: PUSH
1286: EMPTY
1287: LIST
1288: LIST
1289: PUSH
1290: EMPTY
1291: LIST
1292: ADD
1293: ST_TO_ADDR
1294: GO 1221
1296: POP
1297: POP
// breastworks_def := [ [ [ 27 , 16 , 0 ] , [ 36 , 19 , 0 ] ] , [ [ 78 , 20 , 5 ] , [ 81 , 14 , 5 ] ] , [ [ 91 , 69 , 3 ] , [ 99 , 69 , 3 ] ] , [ [ 74 , 133 , 3 ] , [ 84 , 132 , 3 ] ] , ] ;
1298: LD_ADDR_EXP 37
1302: PUSH
1303: LD_INT 27
1305: PUSH
1306: LD_INT 16
1308: PUSH
1309: LD_INT 0
1311: PUSH
1312: EMPTY
1313: LIST
1314: LIST
1315: LIST
1316: PUSH
1317: LD_INT 36
1319: PUSH
1320: LD_INT 19
1322: PUSH
1323: LD_INT 0
1325: PUSH
1326: EMPTY
1327: LIST
1328: LIST
1329: LIST
1330: PUSH
1331: EMPTY
1332: LIST
1333: LIST
1334: PUSH
1335: LD_INT 78
1337: PUSH
1338: LD_INT 20
1340: PUSH
1341: LD_INT 5
1343: PUSH
1344: EMPTY
1345: LIST
1346: LIST
1347: LIST
1348: PUSH
1349: LD_INT 81
1351: PUSH
1352: LD_INT 14
1354: PUSH
1355: LD_INT 5
1357: PUSH
1358: EMPTY
1359: LIST
1360: LIST
1361: LIST
1362: PUSH
1363: EMPTY
1364: LIST
1365: LIST
1366: PUSH
1367: LD_INT 91
1369: PUSH
1370: LD_INT 69
1372: PUSH
1373: LD_INT 3
1375: PUSH
1376: EMPTY
1377: LIST
1378: LIST
1379: LIST
1380: PUSH
1381: LD_INT 99
1383: PUSH
1384: LD_INT 69
1386: PUSH
1387: LD_INT 3
1389: PUSH
1390: EMPTY
1391: LIST
1392: LIST
1393: LIST
1394: PUSH
1395: EMPTY
1396: LIST
1397: LIST
1398: PUSH
1399: LD_INT 74
1401: PUSH
1402: LD_INT 133
1404: PUSH
1405: LD_INT 3
1407: PUSH
1408: EMPTY
1409: LIST
1410: LIST
1411: LIST
1412: PUSH
1413: LD_INT 84
1415: PUSH
1416: LD_INT 132
1418: PUSH
1419: LD_INT 3
1421: PUSH
1422: EMPTY
1423: LIST
1424: LIST
1425: LIST
1426: PUSH
1427: EMPTY
1428: LIST
1429: LIST
1430: PUSH
1431: EMPTY
1432: LIST
1433: LIST
1434: LIST
1435: LIST
1436: ST_TO_ADDR
// end ;
1437: LD_VAR 0 1
1441: RET
// function set_shared_visions_and_alliances ; var i , j ; begin
1442: LD_INT 0
1444: PPUSH
1445: PPUSH
1446: PPUSH
// if not Team_Game then
1447: LD_EXP 34
1451: NOT
1452: IFFALSE 1550
// begin for i = 1 to 8 do
1454: LD_ADDR_VAR 0 2
1458: PUSH
1459: DOUBLE
1460: LD_INT 1
1462: DEC
1463: ST_TO_ADDR
1464: LD_INT 8
1466: PUSH
1467: FOR_TO
1468: IFFALSE 1546
// for j = 1 to 8 do
1470: LD_ADDR_VAR 0 3
1474: PUSH
1475: DOUBLE
1476: LD_INT 1
1478: DEC
1479: ST_TO_ADDR
1480: LD_INT 8
1482: PUSH
1483: FOR_TO
1484: IFFALSE 1542
// if i <> j then
1486: LD_VAR 0 2
1490: PUSH
1491: LD_VAR 0 3
1495: NONEQUAL
1496: IFFALSE 1520
// SetAttitude ( i , j , att_enemy , true ) else
1498: LD_VAR 0 2
1502: PPUSH
1503: LD_VAR 0 3
1507: PPUSH
1508: LD_INT 2
1510: PPUSH
1511: LD_INT 1
1513: PPUSH
1514: CALL_OW 80
1518: GO 1540
// SetAttitude ( i , j , att_friend , true ) ;
1520: LD_VAR 0 2
1524: PPUSH
1525: LD_VAR 0 3
1529: PPUSH
1530: LD_INT 1
1532: PPUSH
1533: LD_INT 1
1535: PPUSH
1536: CALL_OW 80
1540: GO 1483
1542: POP
1543: POP
1544: GO 1467
1546: POP
1547: POP
// end else
1548: GO 1725
// begin if def_shared_vision then
1550: LD_EXP 6
1554: IFFALSE 1619
// begin for i in Teams do
1556: LD_ADDR_VAR 0 2
1560: PUSH
1561: LD_EXP 31
1565: PUSH
1566: FOR_IN
1567: IFFALSE 1617
// for j = 2 to i do
1569: LD_ADDR_VAR 0 3
1573: PUSH
1574: DOUBLE
1575: LD_INT 2
1577: DEC
1578: ST_TO_ADDR
1579: LD_VAR 0 2
1583: PUSH
1584: FOR_TO
1585: IFFALSE 1613
// ChangeSideFog ( i [ j ] , i [ 1 ] ) ;
1587: LD_VAR 0 2
1591: PUSH
1592: LD_VAR 0 3
1596: ARRAY
1597: PPUSH
1598: LD_VAR 0 2
1602: PUSH
1603: LD_INT 1
1605: ARRAY
1606: PPUSH
1607: CALL_OW 343
1611: GO 1584
1613: POP
1614: POP
1615: GO 1566
1617: POP
1618: POP
// end ; for i = 1 to 8 do
1619: LD_ADDR_VAR 0 2
1623: PUSH
1624: DOUBLE
1625: LD_INT 1
1627: DEC
1628: ST_TO_ADDR
1629: LD_INT 8
1631: PUSH
1632: FOR_TO
1633: IFFALSE 1723
// for j = 1 to 8 do
1635: LD_ADDR_VAR 0 3
1639: PUSH
1640: DOUBLE
1641: LD_INT 1
1643: DEC
1644: ST_TO_ADDR
1645: LD_INT 8
1647: PUSH
1648: FOR_TO
1649: IFFALSE 1719
// if Side_Teams [ i ] = Side_Teams [ j ] then
1651: LD_EXP 30
1655: PUSH
1656: LD_VAR 0 2
1660: ARRAY
1661: PUSH
1662: LD_EXP 30
1666: PUSH
1667: LD_VAR 0 3
1671: ARRAY
1672: EQUAL
1673: IFFALSE 1697
// SetAttitude ( i , j , att_friend , true ) else
1675: LD_VAR 0 2
1679: PPUSH
1680: LD_VAR 0 3
1684: PPUSH
1685: LD_INT 1
1687: PPUSH
1688: LD_INT 1
1690: PPUSH
1691: CALL_OW 80
1695: GO 1717
// SetAttitude ( i , j , att_enemy , true ) ;
1697: LD_VAR 0 2
1701: PPUSH
1702: LD_VAR 0 3
1706: PPUSH
1707: LD_INT 2
1709: PPUSH
1710: LD_INT 1
1712: PPUSH
1713: CALL_OW 80
1717: GO 1648
1719: POP
1720: POP
1721: GO 1632
1723: POP
1724: POP
// end ; end ;
1725: LD_VAR 0 1
1729: RET
// function prepare_people ( count , cl , x , y , r ) ; var i , j , un ; begin
1730: LD_INT 0
1732: PPUSH
1733: PPUSH
1734: PPUSH
1735: PPUSH
// result := [ ] ;
1736: LD_ADDR_VAR 0 6
1740: PUSH
1741: EMPTY
1742: ST_TO_ADDR
// for i := 1 to count do
1743: LD_ADDR_VAR 0 7
1747: PUSH
1748: DOUBLE
1749: LD_INT 1
1751: DEC
1752: ST_TO_ADDR
1753: LD_VAR 0 1
1757: PUSH
1758: FOR_TO
1759: IFFALSE 2155
// begin uc_direction := Rand ( 0 , 5 ) ;
1761: LD_ADDR_OWVAR 24
1765: PUSH
1766: LD_INT 0
1768: PPUSH
1769: LD_INT 5
1771: PPUSH
1772: CALL_OW 12
1776: ST_TO_ADDR
// if commander then
1777: LD_LOC 1
1781: IFFALSE 1890
// begin hc_name := mp_sides_players_names [ uc_side ] ;
1783: LD_ADDR_OWVAR 26
1787: PUSH
1788: LD_OWVAR 19
1792: PUSH
1793: LD_OWVAR 20
1797: ARRAY
1798: ST_TO_ADDR
// PrepareHuman ( Rand ( 1 , 2 ) , cl , skill_level + 2 ) ;
1799: LD_INT 1
1801: PPUSH
1802: LD_INT 2
1804: PPUSH
1805: CALL_OW 12
1809: PPUSH
1810: LD_VAR 0 2
1814: PPUSH
1815: LD_EXP 11
1819: PUSH
1820: LD_INT 2
1822: PLUS
1823: PPUSH
1824: CALL_OW 380
// hc_importance := 105 ;
1828: LD_ADDR_OWVAR 32
1832: PUSH
1833: LD_INT 105
1835: ST_TO_ADDR
// commander := false ;
1836: LD_ADDR_LOC 1
1840: PUSH
1841: LD_INT 0
1843: ST_TO_ADDR
// if Multiplayer then
1844: LD_OWVAR 4
1848: IFFALSE 1888
// begin hc_gallery := MULTIAVATARS ;
1850: LD_ADDR_OWVAR 33
1854: PUSH
1855: LD_STRING MULTIAVATARS
1857: ST_TO_ADDR
// hc_face_number := Multiplayer_GetPlayerSideNum ( uc_side ) ;
1858: LD_ADDR_OWVAR 34
1862: PUSH
1863: LD_OWVAR 20
1867: PPUSH
1868: CALL_OW 525
1872: ST_TO_ADDR
// hc_sex := Multiplayer_GetPlayerSex ( uc_side ) ;
1873: LD_ADDR_OWVAR 27
1877: PUSH
1878: LD_OWVAR 20
1882: PPUSH
1883: CALL_OW 526
1887: ST_TO_ADDR
// end ; end else
1888: GO 1953
// begin hc_name :=  ;
1890: LD_ADDR_OWVAR 26
1894: PUSH
1895: LD_STRING 
1897: ST_TO_ADDR
// PrepareHuman ( rand ( 1 , 2 ) , cl , skill_level ) ;
1898: LD_INT 1
1900: PPUSH
1901: LD_INT 2
1903: PPUSH
1904: CALL_OW 12
1908: PPUSH
1909: LD_VAR 0 2
1913: PPUSH
1914: LD_EXP 11
1918: PPUSH
1919: CALL_OW 380
// hc_importance := 0 ;
1923: LD_ADDR_OWVAR 32
1927: PUSH
1928: LD_INT 0
1930: ST_TO_ADDR
// if Multiplayer then
1931: LD_OWVAR 4
1935: IFFALSE 1953
// begin hc_gallery :=  ;
1937: LD_ADDR_OWVAR 33
1941: PUSH
1942: LD_STRING 
1944: ST_TO_ADDR
// hc_face_number := 0 ;
1945: LD_ADDR_OWVAR 34
1949: PUSH
1950: LD_INT 0
1952: ST_TO_ADDR
// end ; end ; un := CreateHuman ;
1953: LD_ADDR_VAR 0 9
1957: PUSH
1958: CALL_OW 44
1962: ST_TO_ADDR
// if global_defined then
1963: LD_LOC 3
1967: IFFALSE 2107
// begin if ( cl = class_soldier ) then
1969: LD_VAR 0 2
1973: PUSH
1974: LD_INT 1
1976: EQUAL
1977: IFFALSE 1997
// j := i + soldiers_created else
1979: LD_ADDR_VAR 0 8
1983: PUSH
1984: LD_VAR 0 7
1988: PUSH
1989: LD_LOC 4
1993: PLUS
1994: ST_TO_ADDR
1995: GO 2007
// j := i ;
1997: LD_ADDR_VAR 0 8
2001: PUSH
2002: LD_VAR 0 7
2006: ST_TO_ADDR
// CopySkills ( global_units [ cl ] [ j ] , un ) ;
2007: LD_LOC 2
2011: PUSH
2012: LD_VAR 0 2
2016: ARRAY
2017: PUSH
2018: LD_VAR 0 8
2022: ARRAY
2023: PPUSH
2024: LD_VAR 0 9
2028: PPUSH
2029: CALL_OW 510
// SetAttr ( un , attr_speed , GetAttr ( global_units [ cl ] [ j ] , attr_speed ) ) ;
2033: LD_VAR 0 9
2037: PPUSH
2038: LD_INT 2
2040: PPUSH
2041: LD_LOC 2
2045: PUSH
2046: LD_VAR 0 2
2050: ARRAY
2051: PUSH
2052: LD_VAR 0 8
2056: ARRAY
2057: PPUSH
2058: LD_INT 2
2060: PPUSH
2061: CALL_OW 260
2065: PPUSH
2066: CALL_OW 239
// SetAttr ( un , attr_stamina , GetAttr ( global_units [ cl ] [ j ] , attr_stamina ) ) ;
2070: LD_VAR 0 9
2074: PPUSH
2075: LD_INT 1
2077: PPUSH
2078: LD_LOC 2
2082: PUSH
2083: LD_VAR 0 2
2087: ARRAY
2088: PUSH
2089: LD_VAR 0 8
2093: ARRAY
2094: PPUSH
2095: LD_INT 1
2097: PPUSH
2098: CALL_OW 260
2102: PPUSH
2103: CALL_OW 239
// end ; PlaceUnitXYR ( un , x , y , r , false ) ;
2107: LD_VAR 0 9
2111: PPUSH
2112: LD_VAR 0 3
2116: PPUSH
2117: LD_VAR 0 4
2121: PPUSH
2122: LD_VAR 0 5
2126: PPUSH
2127: LD_INT 0
2129: PPUSH
2130: CALL_OW 50
// result := result ^ [ un ] ;
2134: LD_ADDR_VAR 0 6
2138: PUSH
2139: LD_VAR 0 6
2143: PUSH
2144: LD_VAR 0 9
2148: PUSH
2149: EMPTY
2150: LIST
2151: ADD
2152: ST_TO_ADDR
// end ;
2153: GO 1758
2155: POP
2156: POP
// if not global_defined then
2157: LD_LOC 3
2161: NOT
2162: IFFALSE 2240
// if ( global_units >= cl ) then
2164: LD_LOC 2
2168: PUSH
2169: LD_VAR 0 2
2173: GREATEREQUAL
2174: IFFALSE 2215
// global_units := Replace ( global_units , cl , global_units [ cl ] ^ result ) else
2176: LD_ADDR_LOC 2
2180: PUSH
2181: LD_LOC 2
2185: PPUSH
2186: LD_VAR 0 2
2190: PPUSH
2191: LD_LOC 2
2195: PUSH
2196: LD_VAR 0 2
2200: ARRAY
2201: PUSH
2202: LD_VAR 0 6
2206: ADD
2207: PPUSH
2208: CALL_OW 1
2212: ST_TO_ADDR
2213: GO 2240
// global_units := Replace ( global_units , cl , result ) ;
2215: LD_ADDR_LOC 2
2219: PUSH
2220: LD_LOC 2
2224: PPUSH
2225: LD_VAR 0 2
2229: PPUSH
2230: LD_VAR 0 6
2234: PPUSH
2235: CALL_OW 1
2239: ST_TO_ADDR
// end ;
2240: LD_VAR 0 6
2244: RET
// function prepare_side ( side ) ; var pos , x , y , dir , i , r , sol , br , dep ; begin
2245: LD_INT 0
2247: PPUSH
2248: PPUSH
2249: PPUSH
2250: PPUSH
2251: PPUSH
2252: PPUSH
2253: PPUSH
2254: PPUSH
2255: PPUSH
2256: PPUSH
// pos := Side_Positions [ side ] ;
2257: LD_ADDR_VAR 0 3
2261: PUSH
2262: LD_EXP 32
2266: PUSH
2267: LD_VAR 0 1
2271: ARRAY
2272: ST_TO_ADDR
// uc_nation := Side_Nations [ side ] ;
2273: LD_ADDR_OWVAR 21
2277: PUSH
2278: LD_EXP 33
2282: PUSH
2283: LD_VAR 0 1
2287: ARRAY
2288: ST_TO_ADDR
// uc_side := side ;
2289: LD_ADDR_OWVAR 20
2293: PUSH
2294: LD_VAR 0 1
2298: ST_TO_ADDR
// x := depot_def [ pos ] [ 1 ] ;
2299: LD_ADDR_VAR 0 4
2303: PUSH
2304: LD_EXP 36
2308: PUSH
2309: LD_VAR 0 3
2313: ARRAY
2314: PUSH
2315: LD_INT 1
2317: ARRAY
2318: ST_TO_ADDR
// y := depot_def [ pos ] [ 2 ] ;
2319: LD_ADDR_VAR 0 5
2323: PUSH
2324: LD_EXP 36
2328: PUSH
2329: LD_VAR 0 3
2333: ARRAY
2334: PUSH
2335: LD_INT 2
2337: ARRAY
2338: ST_TO_ADDR
// dir := depot_def [ pos ] [ 3 ] ;
2339: LD_ADDR_VAR 0 6
2343: PUSH
2344: LD_EXP 36
2348: PUSH
2349: LD_VAR 0 3
2353: ARRAY
2354: PUSH
2355: LD_INT 3
2357: ARRAY
2358: ST_TO_ADDR
// if is_depot then
2359: LD_EXP 8
2363: IFFALSE 2470
// begin bc_type = b_depot ;
2365: LD_ADDR_OWVAR 42
2369: PUSH
2370: LD_INT 0
2372: ST_TO_ADDR
// dep := CreateAndPlaceBuildingXYD ( x , y , dir ) ;
2373: LD_ADDR_VAR 0 11
2377: PUSH
2378: LD_VAR 0 4
2382: PPUSH
2383: LD_VAR 0 5
2387: PPUSH
2388: LD_VAR 0 6
2392: PPUSH
2393: CALL_OW 47
2397: ST_TO_ADDR
// SetBName ( dep , @ & side ) ;
2398: LD_VAR 0 11
2402: PPUSH
2403: LD_STRING @
2405: PUSH
2406: LD_VAR 0 1
2410: STR
2411: PPUSH
2412: CALL_OW 500
// SetResourceType ( GetBase ( dep ) , mat_cans , starting_resources [ mat_cans ] ) ;
2416: LD_VAR 0 11
2420: PPUSH
2421: CALL_OW 274
2425: PPUSH
2426: LD_INT 1
2428: PPUSH
2429: LD_EXP 13
2433: PUSH
2434: LD_INT 1
2436: ARRAY
2437: PPUSH
2438: CALL_OW 277
// SetResourceType ( GetBase ( dep ) , mat_oil , starting_resources [ mat_oil ] ) ;
2442: LD_VAR 0 11
2446: PPUSH
2447: CALL_OW 274
2451: PPUSH
2452: LD_INT 2
2454: PPUSH
2455: LD_EXP 13
2459: PUSH
2460: LD_INT 2
2462: ARRAY
2463: PPUSH
2464: CALL_OW 277
// end else
2468: GO 2614
// begin for i := 1 to 3 do
2470: LD_ADDR_VAR 0 7
2474: PUSH
2475: DOUBLE
2476: LD_INT 1
2478: DEC
2479: ST_TO_ADDR
2480: LD_INT 3
2482: PUSH
2483: FOR_TO
2484: IFFALSE 2612
// begin r := starting_resources [ i ] ;
2486: LD_ADDR_VAR 0 8
2490: PUSH
2491: LD_EXP 13
2495: PUSH
2496: LD_VAR 0 7
2500: ARRAY
2501: ST_TO_ADDR
// while r >= 10 do
2502: LD_VAR 0 8
2506: PUSH
2507: LD_INT 10
2509: GREATEREQUAL
2510: IFFALSE 2610
// if r > 50 then
2512: LD_VAR 0 8
2516: PUSH
2517: LD_INT 50
2519: GREATER
2520: IFFALSE 2566
// begin CreateResourcesXYR ( i , 5 , x , y , 4 , false ) ;
2522: LD_VAR 0 7
2526: PPUSH
2527: LD_INT 5
2529: PPUSH
2530: LD_VAR 0 4
2534: PPUSH
2535: LD_VAR 0 5
2539: PPUSH
2540: LD_INT 4
2542: PPUSH
2543: LD_INT 0
2545: PPUSH
2546: CALL_OW 60
// r := r - 50 ;
2550: LD_ADDR_VAR 0 8
2554: PUSH
2555: LD_VAR 0 8
2559: PUSH
2560: LD_INT 50
2562: MINUS
2563: ST_TO_ADDR
// end else
2564: GO 2608
// begin CreateResourcesXYR ( i , r div 10 , x , y , 4 , false ) ;
2566: LD_VAR 0 7
2570: PPUSH
2571: LD_VAR 0 8
2575: PUSH
2576: LD_INT 10
2578: DIV
2579: PPUSH
2580: LD_VAR 0 4
2584: PPUSH
2585: LD_VAR 0 5
2589: PPUSH
2590: LD_INT 4
2592: PPUSH
2593: LD_INT 0
2595: PPUSH
2596: CALL_OW 60
// r := 0 ;
2600: LD_ADDR_VAR 0 8
2604: PUSH
2605: LD_INT 0
2607: ST_TO_ADDR
// end ;
2608: GO 2502
// end ;
2610: GO 2483
2612: POP
2613: POP
// end ; for r in starting_crates do
2614: LD_ADDR_VAR 0 8
2618: PUSH
2619: LD_EXP 12
2623: PUSH
2624: FOR_IN
2625: IFFALSE 2657
// CreateResourcesXYR ( mat_cans , 5 , x , y , r , false ) ;
2627: LD_INT 1
2629: PPUSH
2630: LD_INT 5
2632: PPUSH
2633: LD_VAR 0 4
2637: PPUSH
2638: LD_VAR 0 5
2642: PPUSH
2643: LD_VAR 0 8
2647: PPUSH
2648: LD_INT 0
2650: PPUSH
2651: CALL_OW 60
2655: GO 2624
2657: POP
2658: POP
// commander := true ;
2659: LD_ADDR_LOC 1
2663: PUSH
2664: LD_INT 1
2666: ST_TO_ADDR
// soldiers_created := 0 ;
2667: LD_ADDR_LOC 4
2671: PUSH
2672: LD_INT 0
2674: ST_TO_ADDR
// for i := 1 to number_of_breastworks do
2675: LD_ADDR_VAR 0 7
2679: PUSH
2680: DOUBLE
2681: LD_INT 1
2683: DEC
2684: ST_TO_ADDR
2685: LD_EXP 9
2689: PUSH
2690: FOR_TO
2691: IFFALSE 2913
// begin x := breastworks_def [ pos ] [ i ] [ 1 ] ;
2693: LD_ADDR_VAR 0 4
2697: PUSH
2698: LD_EXP 37
2702: PUSH
2703: LD_VAR 0 3
2707: ARRAY
2708: PUSH
2709: LD_VAR 0 7
2713: ARRAY
2714: PUSH
2715: LD_INT 1
2717: ARRAY
2718: ST_TO_ADDR
// y := breastworks_def [ pos ] [ i ] [ 2 ] ;
2719: LD_ADDR_VAR 0 5
2723: PUSH
2724: LD_EXP 37
2728: PUSH
2729: LD_VAR 0 3
2733: ARRAY
2734: PUSH
2735: LD_VAR 0 7
2739: ARRAY
2740: PUSH
2741: LD_INT 2
2743: ARRAY
2744: ST_TO_ADDR
// dir := breastworks_def [ pos ] [ i ] [ 3 ] ;
2745: LD_ADDR_VAR 0 6
2749: PUSH
2750: LD_EXP 37
2754: PUSH
2755: LD_VAR 0 3
2759: ARRAY
2760: PUSH
2761: LD_VAR 0 7
2765: ARRAY
2766: PUSH
2767: LD_INT 3
2769: ARRAY
2770: ST_TO_ADDR
// bc_type := b_breastwork ;
2771: LD_ADDR_OWVAR 42
2775: PUSH
2776: LD_INT 31
2778: ST_TO_ADDR
// br := CreateAndPlaceBuildingXYD ( x , y , dir ) ;
2779: LD_ADDR_VAR 0 10
2783: PUSH
2784: LD_VAR 0 4
2788: PPUSH
2789: LD_VAR 0 5
2793: PPUSH
2794: LD_VAR 0 6
2798: PPUSH
2799: CALL_OW 47
2803: ST_TO_ADDR
// x := ShiftX ( x , dir , 2 ) ;
2804: LD_ADDR_VAR 0 4
2808: PUSH
2809: LD_VAR 0 4
2813: PPUSH
2814: LD_VAR 0 6
2818: PPUSH
2819: LD_INT 2
2821: PPUSH
2822: CALL_OW 272
2826: ST_TO_ADDR
// y := ShiftY ( y , dir , 2 ) ;
2827: LD_ADDR_VAR 0 5
2831: PUSH
2832: LD_VAR 0 5
2836: PPUSH
2837: LD_VAR 0 6
2841: PPUSH
2842: LD_INT 2
2844: PPUSH
2845: CALL_OW 273
2849: ST_TO_ADDR
// sol := prepare_people ( 1 , class_soldier , x , y , 0 ) [ 1 ] ;
2850: LD_ADDR_VAR 0 9
2854: PUSH
2855: LD_INT 1
2857: PPUSH
2858: LD_INT 1
2860: PPUSH
2861: LD_VAR 0 4
2865: PPUSH
2866: LD_VAR 0 5
2870: PPUSH
2871: LD_INT 0
2873: PPUSH
2874: CALL 1730 0 5
2878: PUSH
2879: LD_INT 1
2881: ARRAY
2882: ST_TO_ADDR
// soldiers_created := soldiers_created + 1 ;
2883: LD_ADDR_LOC 4
2887: PUSH
2888: LD_LOC 4
2892: PUSH
2893: LD_INT 1
2895: PLUS
2896: ST_TO_ADDR
// ComEnterUnit ( sol , br ) ;
2897: LD_VAR 0 9
2901: PPUSH
2902: LD_VAR 0 10
2906: PPUSH
2907: CALL_OW 120
// end ;
2911: GO 2690
2913: POP
2914: POP
// x := start_def [ pos ] [ 1 ] ;
2915: LD_ADDR_VAR 0 4
2919: PUSH
2920: LD_EXP 38
2924: PUSH
2925: LD_VAR 0 3
2929: ARRAY
2930: PUSH
2931: LD_INT 1
2933: ARRAY
2934: ST_TO_ADDR
// y := start_def [ pos ] [ 2 ] ;
2935: LD_ADDR_VAR 0 5
2939: PUSH
2940: LD_EXP 38
2944: PUSH
2945: LD_VAR 0 3
2949: ARRAY
2950: PUSH
2951: LD_INT 2
2953: ARRAY
2954: ST_TO_ADDR
// prepare_people ( nsol - number_of_breastworks , class_soldier , x , y , 5 ) ;
2955: LD_LOC 8
2959: PUSH
2960: LD_EXP 9
2964: MINUS
2965: PPUSH
2966: LD_INT 1
2968: PPUSH
2969: LD_VAR 0 4
2973: PPUSH
2974: LD_VAR 0 5
2978: PPUSH
2979: LD_INT 5
2981: PPUSH
2982: CALL 1730 0 5
// prepare_people ( neng , class_engineer , x , y , 5 ) ;
2986: LD_LOC 5
2990: PPUSH
2991: LD_INT 2
2993: PPUSH
2994: LD_VAR 0 4
2998: PPUSH
2999: LD_VAR 0 5
3003: PPUSH
3004: LD_INT 5
3006: PPUSH
3007: CALL 1730 0 5
// prepare_people ( nmech , class_mechanic , x , y , 5 ) ;
3011: LD_LOC 7
3015: PPUSH
3016: LD_INT 3
3018: PPUSH
3019: LD_VAR 0 4
3023: PPUSH
3024: LD_VAR 0 5
3028: PPUSH
3029: LD_INT 5
3031: PPUSH
3032: CALL 1730 0 5
// prepare_people ( nsci , class_scientistic , x , y , 5 ) ;
3036: LD_LOC 6
3040: PPUSH
3041: LD_INT 4
3043: PPUSH
3044: LD_VAR 0 4
3048: PPUSH
3049: LD_VAR 0 5
3053: PPUSH
3054: LD_INT 5
3056: PPUSH
3057: CALL 1730 0 5
// global_defined := true ;
3061: LD_ADDR_LOC 3
3065: PUSH
3066: LD_INT 1
3068: ST_TO_ADDR
// end ;
3069: LD_VAR 0 2
3073: RET
// function prepare_sides ; var i ; begin
3074: LD_INT 0
3076: PPUSH
3077: PPUSH
// global_units := [ ] ;
3078: LD_ADDR_LOC 2
3082: PUSH
3083: EMPTY
3084: ST_TO_ADDR
// global_defined := false ;
3085: LD_ADDR_LOC 3
3089: PUSH
3090: LD_INT 0
3092: ST_TO_ADDR
// CountClassMembers ;
3093: CALL 3143 0 0
// for i := 1 to 8 do
3097: LD_ADDR_VAR 0 2
3101: PUSH
3102: DOUBLE
3103: LD_INT 1
3105: DEC
3106: ST_TO_ADDR
3107: LD_INT 8
3109: PUSH
3110: FOR_TO
3111: IFFALSE 3136
// if Side_Positions [ i ] then
3113: LD_EXP 32
3117: PUSH
3118: LD_VAR 0 2
3122: ARRAY
3123: IFFALSE 3134
// prepare_side ( i ) ;
3125: LD_VAR 0 2
3129: PPUSH
3130: CALL 2245 0 1
3134: GO 3110
3136: POP
3137: POP
// end ;
3138: LD_VAR 0 1
3142: RET
// function CountClassMembers ; var Mode ; begin
3143: LD_INT 0
3145: PPUSH
3146: PPUSH
// Mode := 1 ;
3147: LD_ADDR_VAR 0 2
3151: PUSH
3152: LD_INT 1
3154: ST_TO_ADDR
// neng := number_of_people ;
3155: LD_ADDR_LOC 5
3159: PUSH
3160: LD_EXP 10
3164: ST_TO_ADDR
// nsol := neng div [ 4 , 3 ] [ Mode ] ;
3165: LD_ADDR_LOC 8
3169: PUSH
3170: LD_LOC 5
3174: PUSH
3175: LD_INT 4
3177: PUSH
3178: LD_INT 3
3180: PUSH
3181: EMPTY
3182: LIST
3183: LIST
3184: PUSH
3185: LD_VAR 0 2
3189: ARRAY
3190: DIV
3191: ST_TO_ADDR
// if ( nsol < number_of_breastworks ) then
3192: LD_LOC 8
3196: PUSH
3197: LD_EXP 9
3201: LESS
3202: IFFALSE 3214
// nsol := number_of_breastworks ;
3204: LD_ADDR_LOC 8
3208: PUSH
3209: LD_EXP 9
3213: ST_TO_ADDR
// neng := neng - nsol ;
3214: LD_ADDR_LOC 5
3218: PUSH
3219: LD_LOC 5
3223: PUSH
3224: LD_LOC 8
3228: MINUS
3229: ST_TO_ADDR
// nsci := neng div [ 3 , 2 ] [ Mode ] ;
3230: LD_ADDR_LOC 6
3234: PUSH
3235: LD_LOC 5
3239: PUSH
3240: LD_INT 3
3242: PUSH
3243: LD_INT 2
3245: PUSH
3246: EMPTY
3247: LIST
3248: LIST
3249: PUSH
3250: LD_VAR 0 2
3254: ARRAY
3255: DIV
3256: ST_TO_ADDR
// if ( nsci < 1 ) then
3257: LD_LOC 6
3261: PUSH
3262: LD_INT 1
3264: LESS
3265: IFFALSE 3275
// nsci := 1 ;
3267: LD_ADDR_LOC 6
3271: PUSH
3272: LD_INT 1
3274: ST_TO_ADDR
// neng := neng - nsci ;
3275: LD_ADDR_LOC 5
3279: PUSH
3280: LD_LOC 5
3284: PUSH
3285: LD_LOC 6
3289: MINUS
3290: ST_TO_ADDR
// nmech := [ neng div 2 , 0 ] [ Mode ] ;
3291: LD_ADDR_LOC 7
3295: PUSH
3296: LD_LOC 5
3300: PUSH
3301: LD_INT 2
3303: DIV
3304: PUSH
3305: LD_INT 0
3307: PUSH
3308: EMPTY
3309: LIST
3310: LIST
3311: PUSH
3312: LD_VAR 0 2
3316: ARRAY
3317: ST_TO_ADDR
// neng := neng - nmech ;
3318: LD_ADDR_LOC 5
3322: PUSH
3323: LD_LOC 5
3327: PUSH
3328: LD_LOC 7
3332: MINUS
3333: ST_TO_ADDR
// if ( neng < 1 ) then
3334: LD_LOC 5
3338: PUSH
3339: LD_INT 1
3341: LESS
3342: IFFALSE 3352
// neng := 1 ;
3344: LD_ADDR_LOC 5
3348: PUSH
3349: LD_INT 1
3351: ST_TO_ADDR
// end ;
3352: LD_VAR 0 1
3356: RET
// starting var i ; begin RandomizeAll ;
3357: CALL_OW 11
// enable_human_prediction := true ;
3361: LD_ADDR_OWVAR 51
3365: PUSH
3366: LD_INT 1
3368: ST_TO_ADDR
// mp_selectmsg := true ;
3369: LD_ADDR_OWVAR 13
3373: PUSH
3374: LD_INT 1
3376: ST_TO_ADDR
// read_multiplayer_and_game_parameters ;
3377: CALL 0 0 0
// init_map ;
3381: CALL 1139 0 0
// init_respawning ;
3385: CALL 3640 0 0
// set_shared_visions_and_alliances ;
3389: CALL 1442 0 0
// ResetFog ;
3393: CALL_OW 335
// prepare_sides ;
3397: CALL 3074 0 0
// music_nat := Side_Nations [ your_side ] ;
3401: LD_ADDR_OWVAR 71
3405: PUSH
3406: LD_EXP 33
3410: PUSH
3411: LD_OWVAR 2
3415: ARRAY
3416: ST_TO_ADDR
// if ai_russian1 = 1 and ai_russian2 = 1 then
3417: LD_EXP 22
3421: PUSH
3422: LD_INT 1
3424: EQUAL
3425: PUSH
3426: LD_EXP 23
3430: PUSH
3431: LD_INT 1
3433: EQUAL
3434: AND
3435: IFFALSE 3505
// begin SetSide ( amgeneral2 , GetSide ( FilterUnitsInArea ( AmBaseSpawnArea2 , [ f_type , unit_human ] ) [ 1 ] ) ) ;
3437: LD_INT 3
3439: PPUSH
3440: LD_INT 3
3442: PPUSH
3443: LD_INT 21
3445: PUSH
3446: LD_INT 1
3448: PUSH
3449: EMPTY
3450: LIST
3451: LIST
3452: PPUSH
3453: CALL_OW 70
3457: PUSH
3458: LD_INT 1
3460: ARRAY
3461: PPUSH
3462: CALL_OW 255
3466: PPUSH
3467: CALL_OW 235
// SetSide ( amgeneral1 , GetSide ( FilterUnitsInArea ( AmBaseSpawnArea1 , [ f_type , unit_human ] ) [ 1 ] ) ) ;
3471: LD_INT 1
3473: PPUSH
3474: LD_INT 2
3476: PPUSH
3477: LD_INT 21
3479: PUSH
3480: LD_INT 1
3482: PUSH
3483: EMPTY
3484: LIST
3485: LIST
3486: PPUSH
3487: CALL_OW 70
3491: PUSH
3492: LD_INT 1
3494: ARRAY
3495: PPUSH
3496: CALL_OW 255
3500: PPUSH
3501: CALL_OW 235
// end ; if ai_american1 = 1 and ai_american2 = 1 then
3505: LD_EXP 20
3509: PUSH
3510: LD_INT 1
3512: EQUAL
3513: PUSH
3514: LD_EXP 21
3518: PUSH
3519: LD_INT 1
3521: EQUAL
3522: AND
3523: IFFALSE 3593
// begin SetSide ( rugeneral1 , GetSide ( FilterUnitsInArea ( RuBaseSpawnArea1 , [ f_type , unit_human ] ) [ 1 ] ) ) ;
3525: LD_INT 8
3527: PPUSH
3528: LD_INT 4
3530: PPUSH
3531: LD_INT 21
3533: PUSH
3534: LD_INT 1
3536: PUSH
3537: EMPTY
3538: LIST
3539: LIST
3540: PPUSH
3541: CALL_OW 70
3545: PUSH
3546: LD_INT 1
3548: ARRAY
3549: PPUSH
3550: CALL_OW 255
3554: PPUSH
3555: CALL_OW 235
// SetSide ( rugeneral2 , GetSide ( FilterUnitsInArea ( RuBaseSpawnArea2 , [ f_type , unit_human ] ) [ 1 ] ) ) ;
3559: LD_INT 6
3561: PPUSH
3562: LD_INT 5
3564: PPUSH
3565: LD_INT 21
3567: PUSH
3568: LD_INT 1
3570: PUSH
3571: EMPTY
3572: LIST
3573: LIST
3574: PPUSH
3575: CALL_OW 70
3579: PUSH
3580: LD_INT 1
3582: ARRAY
3583: PPUSH
3584: CALL_OW 255
3588: PPUSH
3589: CALL_OW 235
// end ; CenterNowOnXY ( start_def [ Side_Positions [ your_side ] ] [ 1 ] , start_def [ Side_Positions [ your_side ] ] [ 2 ] ) ;
3593: LD_EXP 38
3597: PUSH
3598: LD_EXP 32
3602: PUSH
3603: LD_OWVAR 2
3607: ARRAY
3608: ARRAY
3609: PUSH
3610: LD_INT 1
3612: ARRAY
3613: PPUSH
3614: LD_EXP 38
3618: PUSH
3619: LD_EXP 32
3623: PUSH
3624: LD_OWVAR 2
3628: ARRAY
3629: ARRAY
3630: PUSH
3631: LD_INT 2
3633: ARRAY
3634: PPUSH
3635: CALL_OW 86
// end ; end_of_file
3639: END
// var respawn , inqueue ; export function init_respawning ; begin
3640: LD_INT 0
3642: PPUSH
// respawn := Rand ( 1 , 8 ) ;
3643: LD_ADDR_LOC 9
3647: PUSH
3648: LD_INT 1
3650: PPUSH
3651: LD_INT 8
3653: PPUSH
3654: CALL_OW 12
3658: ST_TO_ADDR
// inqueue := [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] ;
3659: LD_ADDR_LOC 10
3663: PUSH
3664: LD_INT 0
3666: PUSH
3667: LD_INT 0
3669: PUSH
3670: LD_INT 0
3672: PUSH
3673: LD_INT 0
3675: PUSH
3676: LD_INT 0
3678: PUSH
3679: LD_INT 0
3681: PUSH
3682: LD_INT 0
3684: PUSH
3685: LD_INT 0
3687: PUSH
3688: EMPTY
3689: LIST
3690: LIST
3691: LIST
3692: LIST
3693: LIST
3694: LIST
3695: LIST
3696: LIST
3697: ST_TO_ADDR
// end ;
3698: LD_VAR 0 1
3702: RET
// every 0 0$1 + 0 0$0.5 do var n , dep , aktresp ;
3703: GO 3705
3705: DISABLE
3706: LD_INT 0
3708: PPUSH
3709: PPUSH
3710: PPUSH
// begin if respawning_time_max = 0 then
3711: LD_EXP 19
3715: PUSH
3716: LD_INT 0
3718: EQUAL
3719: IFFALSE 3723
// exit ;
3721: GO 4128
// if respawn = 8 then
3723: LD_LOC 9
3727: PUSH
3728: LD_INT 8
3730: EQUAL
3731: IFFALSE 3743
// respawn := 1 else
3733: LD_ADDR_LOC 9
3737: PUSH
3738: LD_INT 1
3740: ST_TO_ADDR
3741: GO 3757
// respawn := respawn + 1 ;
3743: LD_ADDR_LOC 9
3747: PUSH
3748: LD_LOC 9
3752: PUSH
3753: LD_INT 1
3755: PLUS
3756: ST_TO_ADDR
// if Side_Positions [ respawn ] and not inqueue [ respawn ] then
3757: LD_EXP 32
3761: PUSH
3762: LD_LOC 9
3766: ARRAY
3767: PUSH
3768: LD_LOC 10
3772: PUSH
3773: LD_LOC 9
3777: ARRAY
3778: NOT
3779: AND
3780: IFFALSE 4127
// begin n := FilterAllUnits ( [ [ f_type , unit_human ] , [ f_side , respawn ] , f_not , [ f_nation , nation_nature ] ] ) ;
3782: LD_ADDR_VAR 0 1
3786: PUSH
3787: LD_INT 21
3789: PUSH
3790: LD_INT 1
3792: PUSH
3793: EMPTY
3794: LIST
3795: LIST
3796: PUSH
3797: LD_INT 22
3799: PUSH
3800: LD_LOC 9
3804: PUSH
3805: EMPTY
3806: LIST
3807: LIST
3808: PUSH
3809: LD_INT 3
3811: PUSH
3812: LD_INT 23
3814: PUSH
3815: LD_INT 0
3817: PUSH
3818: EMPTY
3819: LIST
3820: LIST
3821: PUSH
3822: EMPTY
3823: LIST
3824: LIST
3825: LIST
3826: LIST
3827: PPUSH
3828: CALL_OW 69
3832: ST_TO_ADDR
// if n < number_of_people then
3833: LD_VAR 0 1
3837: PUSH
3838: LD_EXP 10
3842: LESS
3843: IFFALSE 4124
// begin dep := FilterAllUnits ( [ [ f_type , unit_building ] , [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] ] , [ f_ok ] , [ f_side , respawn ] ] ) ;
3845: LD_ADDR_VAR 0 2
3849: PUSH
3850: LD_INT 21
3852: PUSH
3853: LD_INT 3
3855: PUSH
3856: EMPTY
3857: LIST
3858: LIST
3859: PUSH
3860: LD_INT 2
3862: PUSH
3863: LD_INT 30
3865: PUSH
3866: LD_INT 0
3868: PUSH
3869: EMPTY
3870: LIST
3871: LIST
3872: PUSH
3873: LD_INT 30
3875: PUSH
3876: LD_INT 1
3878: PUSH
3879: EMPTY
3880: LIST
3881: LIST
3882: PUSH
3883: EMPTY
3884: LIST
3885: LIST
3886: LIST
3887: PUSH
3888: LD_INT 50
3890: PUSH
3891: EMPTY
3892: LIST
3893: PUSH
3894: LD_INT 22
3896: PUSH
3897: LD_LOC 9
3901: PUSH
3902: EMPTY
3903: LIST
3904: LIST
3905: PUSH
3906: EMPTY
3907: LIST
3908: LIST
3909: LIST
3910: LIST
3911: PPUSH
3912: CALL_OW 69
3916: ST_TO_ADDR
// if dep then
3917: LD_VAR 0 2
3921: IFFALSE 4121
// begin aktresp := respawn ;
3923: LD_ADDR_VAR 0 3
3927: PUSH
3928: LD_LOC 9
3932: ST_TO_ADDR
// inqueue := Replace ( inqueue , aktresp , true ) ;
3933: LD_ADDR_LOC 10
3937: PUSH
3938: LD_LOC 10
3942: PPUSH
3943: LD_VAR 0 3
3947: PPUSH
3948: LD_INT 1
3950: PPUSH
3951: CALL_OW 1
3955: ST_TO_ADDR
// enable ;
3956: ENABLE
// wait ( rand ( respawning_time_min , respawning_time_max ) ) ;
3957: LD_EXP 18
3961: PPUSH
3962: LD_EXP 19
3966: PPUSH
3967: CALL_OW 12
3971: PPUSH
3972: CALL_OW 67
// inqueue := Replace ( inqueue , aktresp , false ) ;
3976: LD_ADDR_LOC 10
3980: PUSH
3981: LD_LOC 10
3985: PPUSH
3986: LD_VAR 0 3
3990: PPUSH
3991: LD_INT 0
3993: PPUSH
3994: CALL_OW 1
3998: ST_TO_ADDR
// hc_name :=  ;
3999: LD_ADDR_OWVAR 26
4003: PUSH
4004: LD_STRING 
4006: ST_TO_ADDR
// hc_importance := 0 ;
4007: LD_ADDR_OWVAR 32
4011: PUSH
4012: LD_INT 0
4014: ST_TO_ADDR
// PrepareHuman ( 0 , 0 , skill_level div 2 ) ;
4015: LD_INT 0
4017: PPUSH
4018: LD_INT 0
4020: PPUSH
4021: LD_EXP 11
4025: PUSH
4026: LD_INT 2
4028: DIV
4029: PPUSH
4030: CALL_OW 380
// uc_nation := Side_Nations [ aktresp ] ;
4034: LD_ADDR_OWVAR 21
4038: PUSH
4039: LD_EXP 33
4043: PUSH
4044: LD_VAR 0 3
4048: ARRAY
4049: ST_TO_ADDR
// uc_side := aktresp ;
4050: LD_ADDR_OWVAR 20
4054: PUSH
4055: LD_VAR 0 3
4059: ST_TO_ADDR
// dep := dep [ Rand ( 1 , dep ) ] ;
4060: LD_ADDR_VAR 0 2
4064: PUSH
4065: LD_VAR 0 2
4069: PUSH
4070: LD_INT 1
4072: PPUSH
4073: LD_VAR 0 2
4077: PPUSH
4078: CALL_OW 12
4082: ARRAY
4083: ST_TO_ADDR
// PlaceUnitXYR ( CreateHuman , GetX ( dep ) , GetY ( dep ) , 7 , true ) ;
4084: CALL_OW 44
4088: PPUSH
4089: LD_VAR 0 2
4093: PPUSH
4094: CALL_OW 250
4098: PPUSH
4099: LD_VAR 0 2
4103: PPUSH
4104: CALL_OW 251
4108: PPUSH
4109: LD_INT 7
4111: PPUSH
4112: LD_INT 1
4114: PPUSH
4115: CALL_OW 50
// end else
4119: GO 4122
// enable ;
4121: ENABLE
// end else
4122: GO 4125
// enable ;
4124: ENABLE
// end else
4125: GO 4128
// enable ;
4127: ENABLE
// end ; end_of_file
4128: PPOPN 3
4130: END
// on BuildingStarted ( b , u ) do var i ;
4131: LD_INT 0
4133: PPUSH
// begin if GetBType ( b ) in [ b_depot , b_warehouse ] then
4134: LD_VAR 0 1
4138: PPUSH
4139: CALL_OW 266
4143: PUSH
4144: LD_INT 0
4146: PUSH
4147: LD_INT 1
4149: PUSH
4150: EMPTY
4151: LIST
4152: LIST
4153: IN
4154: IFFALSE 4179
// SetBName ( b , @ & GetSide ( b ) ) ;
4156: LD_VAR 0 1
4160: PPUSH
4161: LD_STRING @
4163: PUSH
4164: LD_VAR 0 1
4168: PPUSH
4169: CALL_OW 255
4173: STR
4174: PPUSH
4175: CALL_OW 500
// if GetSide ( u ) = randomedColors [ 2 ] or randomedColors [ 3 ] then
4179: LD_VAR 0 2
4183: PPUSH
4184: CALL_OW 255
4188: PUSH
4189: LD_EXP 51
4193: PUSH
4194: LD_INT 2
4196: ARRAY
4197: EQUAL
4198: PUSH
4199: LD_EXP 51
4203: PUSH
4204: LD_INT 3
4206: ARRAY
4207: OR
4208: IFFALSE 4311
// begin buildInformation_list = buildInformation_list diff buildInformation_list [ 1 ] ;
4210: LD_ADDR_EXP 49
4214: PUSH
4215: LD_EXP 49
4219: PUSH
4220: LD_EXP 49
4224: PUSH
4225: LD_INT 1
4227: ARRAY
4228: DIFF
4229: ST_TO_ADDR
// wait ( 0 0$1 ) ;
4230: LD_INT 35
4232: PPUSH
4233: CALL_OW 67
// buildInformation_list = buildInformation_list diff buildInformation_list [ 1 ] ;
4237: LD_ADDR_EXP 49
4241: PUSH
4242: LD_EXP 49
4246: PUSH
4247: LD_EXP 49
4251: PUSH
4252: LD_INT 1
4254: ARRAY
4255: DIFF
4256: ST_TO_ADDR
// wait ( 0 0$1 ) ;
4257: LD_INT 35
4259: PPUSH
4260: CALL_OW 67
// buildInformation_list = buildInformation_list diff buildInformation_list [ 1 ] ;
4264: LD_ADDR_EXP 49
4268: PUSH
4269: LD_EXP 49
4273: PUSH
4274: LD_EXP 49
4278: PUSH
4279: LD_INT 1
4281: ARRAY
4282: DIFF
4283: ST_TO_ADDR
// wait ( 0 0$1 ) ;
4284: LD_INT 35
4286: PPUSH
4287: CALL_OW 67
// buildInformation_list = buildInformation_list diff buildInformation_list [ 1 ] ;
4291: LD_ADDR_EXP 49
4295: PUSH
4296: LD_EXP 49
4300: PUSH
4301: LD_EXP 49
4305: PUSH
4306: LD_INT 1
4308: ARRAY
4309: DIFF
4310: ST_TO_ADDR
// end ; end ;
4311: PPOPN 3
4313: END
// on BuildingCaptured ( b , o , e ) do begin if GetBType ( b ) in [ b_depot , b_warehouse ] then
4314: LD_VAR 0 1
4318: PPUSH
4319: CALL_OW 266
4323: PUSH
4324: LD_INT 0
4326: PUSH
4327: LD_INT 1
4329: PUSH
4330: EMPTY
4331: LIST
4332: LIST
4333: IN
4334: IFFALSE 4359
// SetBName ( b , @ & GetSide ( b ) ) ;
4336: LD_VAR 0 1
4340: PPUSH
4341: LD_STRING @
4343: PUSH
4344: LD_VAR 0 1
4348: PPUSH
4349: CALL_OW 255
4353: STR
4354: PPUSH
4355: CALL_OW 500
// end ;
4359: PPOPN 3
4361: END
// on VehicleConstructed ( un , fac ) do var i , l ;
4362: LD_INT 0
4364: PPUSH
4365: PPUSH
// begin if GetSide ( un ) = randomedColors [ 2 ] and ai_american1 = 1 then
4366: LD_VAR 0 1
4370: PPUSH
4371: CALL_OW 255
4375: PUSH
4376: LD_EXP 51
4380: PUSH
4381: LD_INT 2
4383: ARRAY
4384: EQUAL
4385: PUSH
4386: LD_EXP 20
4390: PUSH
4391: LD_INT 1
4393: EQUAL
4394: AND
4395: IFFALSE 4476
// begin if un in FilterAllUnits ( [ [ f_side , randomedColors [ 2 ] ] , [ f_type , unit_vehicle ] , [ f_control , control_remote ] ] ) then
4397: LD_VAR 0 1
4401: PUSH
4402: LD_INT 22
4404: PUSH
4405: LD_EXP 51
4409: PUSH
4410: LD_INT 2
4412: ARRAY
4413: PUSH
4414: EMPTY
4415: LIST
4416: LIST
4417: PUSH
4418: LD_INT 21
4420: PUSH
4421: LD_INT 2
4423: PUSH
4424: EMPTY
4425: LIST
4426: LIST
4427: PUSH
4428: LD_INT 33
4430: PUSH
4431: LD_INT 2
4433: PUSH
4434: EMPTY
4435: LIST
4436: LIST
4437: PUSH
4438: EMPTY
4439: LIST
4440: LIST
4441: LIST
4442: PPUSH
4443: CALL_OW 69
4447: IN
4448: IFFALSE 4476
// begin LinkVehicleToHuman ( un , Am1Controlers [ Rand ( 1 , 3 ) ] ) ;
4450: LD_VAR 0 1
4454: PPUSH
4455: LD_EXP 72
4459: PUSH
4460: LD_INT 1
4462: PPUSH
4463: LD_INT 3
4465: PPUSH
4466: CALL_OW 12
4470: ARRAY
4471: PPUSH
4472: CALL_OW 53
// end ; end ; if GetSide ( un ) = randomedColors [ 3 ] and ai_american2 = 1 then
4476: LD_VAR 0 1
4480: PPUSH
4481: CALL_OW 255
4485: PUSH
4486: LD_EXP 51
4490: PUSH
4491: LD_INT 3
4493: ARRAY
4494: EQUAL
4495: PUSH
4496: LD_EXP 21
4500: PUSH
4501: LD_INT 1
4503: EQUAL
4504: AND
4505: IFFALSE 4586
// begin if un in FilterAllUnits ( [ [ f_side , randomedColors [ 3 ] ] , [ f_type , unit_vehicle ] , [ f_control , control_remote ] ] ) then
4507: LD_VAR 0 1
4511: PUSH
4512: LD_INT 22
4514: PUSH
4515: LD_EXP 51
4519: PUSH
4520: LD_INT 3
4522: ARRAY
4523: PUSH
4524: EMPTY
4525: LIST
4526: LIST
4527: PUSH
4528: LD_INT 21
4530: PUSH
4531: LD_INT 2
4533: PUSH
4534: EMPTY
4535: LIST
4536: LIST
4537: PUSH
4538: LD_INT 33
4540: PUSH
4541: LD_INT 2
4543: PUSH
4544: EMPTY
4545: LIST
4546: LIST
4547: PUSH
4548: EMPTY
4549: LIST
4550: LIST
4551: LIST
4552: PPUSH
4553: CALL_OW 69
4557: IN
4558: IFFALSE 4586
// begin LinkVehicleToHuman ( un , Am2Controlers [ Rand ( 1 , 3 ) ] ) ;
4560: LD_VAR 0 1
4564: PPUSH
4565: LD_EXP 73
4569: PUSH
4570: LD_INT 1
4572: PPUSH
4573: LD_INT 3
4575: PPUSH
4576: CALL_OW 12
4580: ARRAY
4581: PPUSH
4582: CALL_OW 53
// end ; end ; end ;
4586: PPOPN 4
4588: END
// export buildInformation_list ; on UnitDestroyed ( un ) do begin if GetSide ( un ) = randomedColors [ 2 ] and GetType ( un ) = unit_building and FilterAllUnits ( [ [ f_side , randomedColors [ 2 ] ] , [ f_class , 2 ] ] ) > 0 or GetSide ( un ) = randomedColors [ 3 ] and GetType ( un ) = unit_building and FilterAllUnits ( [ [ f_side , randomedColors [ 3 ] ] , [ f_class , 2 ] ] ) > 0 then
4589: LD_VAR 0 1
4593: PPUSH
4594: CALL_OW 255
4598: PUSH
4599: LD_EXP 51
4603: PUSH
4604: LD_INT 2
4606: ARRAY
4607: EQUAL
4608: PUSH
4609: LD_VAR 0 1
4613: PPUSH
4614: CALL_OW 247
4618: PUSH
4619: LD_INT 3
4621: EQUAL
4622: AND
4623: PUSH
4624: LD_INT 22
4626: PUSH
4627: LD_EXP 51
4631: PUSH
4632: LD_INT 2
4634: ARRAY
4635: PUSH
4636: EMPTY
4637: LIST
4638: LIST
4639: PUSH
4640: LD_INT 25
4642: PUSH
4643: LD_INT 2
4645: PUSH
4646: EMPTY
4647: LIST
4648: LIST
4649: PUSH
4650: EMPTY
4651: LIST
4652: LIST
4653: PPUSH
4654: CALL_OW 69
4658: PUSH
4659: LD_INT 0
4661: GREATER
4662: AND
4663: PUSH
4664: LD_VAR 0 1
4668: PPUSH
4669: CALL_OW 255
4673: PUSH
4674: LD_EXP 51
4678: PUSH
4679: LD_INT 3
4681: ARRAY
4682: EQUAL
4683: PUSH
4684: LD_VAR 0 1
4688: PPUSH
4689: CALL_OW 247
4693: PUSH
4694: LD_INT 3
4696: EQUAL
4697: AND
4698: PUSH
4699: LD_INT 22
4701: PUSH
4702: LD_EXP 51
4706: PUSH
4707: LD_INT 3
4709: ARRAY
4710: PUSH
4711: EMPTY
4712: LIST
4713: LIST
4714: PUSH
4715: LD_INT 25
4717: PUSH
4718: LD_INT 2
4720: PUSH
4721: EMPTY
4722: LIST
4723: LIST
4724: PUSH
4725: EMPTY
4726: LIST
4727: LIST
4728: PPUSH
4729: CALL_OW 69
4733: PUSH
4734: LD_INT 0
4736: GREATER
4737: AND
4738: OR
4739: IFFALSE 4825
// begin buildInformation_list = buildInformation_list ^ GetBType ( un ) ;
4741: LD_ADDR_EXP 49
4745: PUSH
4746: LD_EXP 49
4750: PUSH
4751: LD_VAR 0 1
4755: PPUSH
4756: CALL_OW 266
4760: ADD
4761: ST_TO_ADDR
// buildInformation_list = buildInformation_list ^ GetX ( un ) ;
4762: LD_ADDR_EXP 49
4766: PUSH
4767: LD_EXP 49
4771: PUSH
4772: LD_VAR 0 1
4776: PPUSH
4777: CALL_OW 250
4781: ADD
4782: ST_TO_ADDR
// buildInformation_list = buildInformation_list ^ GetY ( un ) ;
4783: LD_ADDR_EXP 49
4787: PUSH
4788: LD_EXP 49
4792: PUSH
4793: LD_VAR 0 1
4797: PPUSH
4798: CALL_OW 251
4802: ADD
4803: ST_TO_ADDR
// buildInformation_list = buildInformation_list ^ GetDir ( un ) ;
4804: LD_ADDR_EXP 49
4808: PUSH
4809: LD_EXP 49
4813: PUSH
4814: LD_VAR 0 1
4818: PPUSH
4819: CALL_OW 254
4823: ADD
4824: ST_TO_ADDR
// end ; end ;
4825: PPOPN 1
4827: END
// on BuildingComplete ( building ) do var weapon , un , skill ;
4828: LD_INT 0
4830: PPUSH
4831: PPUSH
4832: PPUSH
// begin skill = difficultyC ;
4833: LD_ADDR_VAR 0 4
4837: PUSH
4838: LD_EXP 24
4842: ST_TO_ADDR
// if GetNation ( building ) = 1 and GetSide ( building ) = randomedColors [ 2 ] and GetBType ( building ) = b_bunker then
4843: LD_VAR 0 1
4847: PPUSH
4848: CALL_OW 248
4852: PUSH
4853: LD_INT 1
4855: EQUAL
4856: PUSH
4857: LD_VAR 0 1
4861: PPUSH
4862: CALL_OW 255
4866: PUSH
4867: LD_EXP 51
4871: PUSH
4872: LD_INT 2
4874: ARRAY
4875: EQUAL
4876: AND
4877: PUSH
4878: LD_VAR 0 1
4882: PPUSH
4883: CALL_OW 266
4887: PUSH
4888: LD_INT 32
4890: EQUAL
4891: AND
4892: IFFALSE 5091
// begin weapon = [ 5 , 4 , 3 , 6 ] ;
4894: LD_ADDR_VAR 0 2
4898: PUSH
4899: LD_INT 5
4901: PUSH
4902: LD_INT 4
4904: PUSH
4905: LD_INT 3
4907: PUSH
4908: LD_INT 6
4910: PUSH
4911: EMPTY
4912: LIST
4913: LIST
4914: LIST
4915: LIST
4916: ST_TO_ADDR
// PlaceWeaponTurret ( building , weapon [ Rand ( 1 , 4 ) ] ) ;
4917: LD_VAR 0 1
4921: PPUSH
4922: LD_VAR 0 2
4926: PUSH
4927: LD_INT 1
4929: PPUSH
4930: LD_INT 4
4932: PPUSH
4933: CALL_OW 12
4937: ARRAY
4938: PPUSH
4939: CALL_OW 431
// uc_side = randomedColors [ 2 ] ;
4943: LD_ADDR_OWVAR 20
4947: PUSH
4948: LD_EXP 51
4952: PUSH
4953: LD_INT 2
4955: ARRAY
4956: ST_TO_ADDR
// uc_nation = 1 ;
4957: LD_ADDR_OWVAR 21
4961: PUSH
4962: LD_INT 1
4964: ST_TO_ADDR
// hc_gallery =  ;
4965: LD_ADDR_OWVAR 33
4969: PUSH
4970: LD_STRING 
4972: ST_TO_ADDR
// hc_name =  ;
4973: LD_ADDR_OWVAR 26
4977: PUSH
4978: LD_STRING 
4980: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
4981: LD_ADDR_OWVAR 29
4985: PUSH
4986: LD_INT 9
4988: PPUSH
4989: LD_INT 11
4991: PPUSH
4992: CALL_OW 12
4996: PUSH
4997: LD_INT 10
4999: PPUSH
5000: LD_INT 12
5002: PPUSH
5003: CALL_OW 12
5007: PUSH
5008: EMPTY
5009: LIST
5010: LIST
5011: ST_TO_ADDR
// hc_skills = [ skill , skill , skill , skill ] ;
5012: LD_ADDR_OWVAR 31
5016: PUSH
5017: LD_VAR 0 4
5021: PUSH
5022: LD_VAR 0 4
5026: PUSH
5027: LD_VAR 0 4
5031: PUSH
5032: LD_VAR 0 4
5036: PUSH
5037: EMPTY
5038: LIST
5039: LIST
5040: LIST
5041: LIST
5042: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
5043: LD_ADDR_OWVAR 27
5047: PUSH
5048: LD_INT 1
5050: PPUSH
5051: LD_INT 2
5053: PPUSH
5054: CALL_OW 12
5058: ST_TO_ADDR
// hc_class = 1 ;
5059: LD_ADDR_OWVAR 28
5063: PUSH
5064: LD_INT 1
5066: ST_TO_ADDR
// un = CreateHuman ;
5067: LD_ADDR_VAR 0 3
5071: PUSH
5072: CALL_OW 44
5076: ST_TO_ADDR
// PlaceHumanInUnit ( un , building ) ;
5077: LD_VAR 0 3
5081: PPUSH
5082: LD_VAR 0 1
5086: PPUSH
5087: CALL_OW 52
// end ; if GetNation ( building ) = 1 and GetSide ( building ) = randomedColors [ 3 ] and GetBType ( building ) = b_bunker then
5091: LD_VAR 0 1
5095: PPUSH
5096: CALL_OW 248
5100: PUSH
5101: LD_INT 1
5103: EQUAL
5104: PUSH
5105: LD_VAR 0 1
5109: PPUSH
5110: CALL_OW 255
5114: PUSH
5115: LD_EXP 51
5119: PUSH
5120: LD_INT 3
5122: ARRAY
5123: EQUAL
5124: AND
5125: PUSH
5126: LD_VAR 0 1
5130: PPUSH
5131: CALL_OW 266
5135: PUSH
5136: LD_INT 32
5138: EQUAL
5139: AND
5140: IFFALSE 5339
// begin weapon = [ 5 , 4 , 3 , 6 ] ;
5142: LD_ADDR_VAR 0 2
5146: PUSH
5147: LD_INT 5
5149: PUSH
5150: LD_INT 4
5152: PUSH
5153: LD_INT 3
5155: PUSH
5156: LD_INT 6
5158: PUSH
5159: EMPTY
5160: LIST
5161: LIST
5162: LIST
5163: LIST
5164: ST_TO_ADDR
// PlaceWeaponTurret ( building , weapon [ Rand ( 1 , 4 ) ] ) ;
5165: LD_VAR 0 1
5169: PPUSH
5170: LD_VAR 0 2
5174: PUSH
5175: LD_INT 1
5177: PPUSH
5178: LD_INT 4
5180: PPUSH
5181: CALL_OW 12
5185: ARRAY
5186: PPUSH
5187: CALL_OW 431
// uc_side = randomedColors [ 3 ] ;
5191: LD_ADDR_OWVAR 20
5195: PUSH
5196: LD_EXP 51
5200: PUSH
5201: LD_INT 3
5203: ARRAY
5204: ST_TO_ADDR
// uc_nation = 1 ;
5205: LD_ADDR_OWVAR 21
5209: PUSH
5210: LD_INT 1
5212: ST_TO_ADDR
// hc_gallery =  ;
5213: LD_ADDR_OWVAR 33
5217: PUSH
5218: LD_STRING 
5220: ST_TO_ADDR
// hc_name =  ;
5221: LD_ADDR_OWVAR 26
5225: PUSH
5226: LD_STRING 
5228: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
5229: LD_ADDR_OWVAR 29
5233: PUSH
5234: LD_INT 9
5236: PPUSH
5237: LD_INT 11
5239: PPUSH
5240: CALL_OW 12
5244: PUSH
5245: LD_INT 10
5247: PPUSH
5248: LD_INT 12
5250: PPUSH
5251: CALL_OW 12
5255: PUSH
5256: EMPTY
5257: LIST
5258: LIST
5259: ST_TO_ADDR
// hc_skills = [ skill , skill , skill , skill ] ;
5260: LD_ADDR_OWVAR 31
5264: PUSH
5265: LD_VAR 0 4
5269: PUSH
5270: LD_VAR 0 4
5274: PUSH
5275: LD_VAR 0 4
5279: PUSH
5280: LD_VAR 0 4
5284: PUSH
5285: EMPTY
5286: LIST
5287: LIST
5288: LIST
5289: LIST
5290: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
5291: LD_ADDR_OWVAR 27
5295: PUSH
5296: LD_INT 1
5298: PPUSH
5299: LD_INT 2
5301: PPUSH
5302: CALL_OW 12
5306: ST_TO_ADDR
// hc_class = 1 ;
5307: LD_ADDR_OWVAR 28
5311: PUSH
5312: LD_INT 1
5314: ST_TO_ADDR
// un = CreateHuman ;
5315: LD_ADDR_VAR 0 3
5319: PUSH
5320: CALL_OW 44
5324: ST_TO_ADDR
// PlaceHumanInUnit ( un , building ) ;
5325: LD_VAR 0 3
5329: PPUSH
5330: LD_VAR 0 1
5334: PPUSH
5335: CALL_OW 52
// end ; if GetNation ( building ) = 3 and GetSide ( building ) = randomedColors [ 2 ] and GetBType ( building ) = b_bunker then
5339: LD_VAR 0 1
5343: PPUSH
5344: CALL_OW 248
5348: PUSH
5349: LD_INT 3
5351: EQUAL
5352: PUSH
5353: LD_VAR 0 1
5357: PPUSH
5358: CALL_OW 255
5362: PUSH
5363: LD_EXP 51
5367: PUSH
5368: LD_INT 2
5370: ARRAY
5371: EQUAL
5372: AND
5373: PUSH
5374: LD_VAR 0 1
5378: PPUSH
5379: CALL_OW 266
5383: PUSH
5384: LD_INT 32
5386: EQUAL
5387: AND
5388: IFFALSE 5583
// begin weapon = [ 43 , 44 , 46 ] ;
5390: LD_ADDR_VAR 0 2
5394: PUSH
5395: LD_INT 43
5397: PUSH
5398: LD_INT 44
5400: PUSH
5401: LD_INT 46
5403: PUSH
5404: EMPTY
5405: LIST
5406: LIST
5407: LIST
5408: ST_TO_ADDR
// PlaceWeaponTurret ( building , weapon [ Rand ( 1 , 3 ) ] ) ;
5409: LD_VAR 0 1
5413: PPUSH
5414: LD_VAR 0 2
5418: PUSH
5419: LD_INT 1
5421: PPUSH
5422: LD_INT 3
5424: PPUSH
5425: CALL_OW 12
5429: ARRAY
5430: PPUSH
5431: CALL_OW 431
// uc_side = randomedColors [ 2 ] ;
5435: LD_ADDR_OWVAR 20
5439: PUSH
5440: LD_EXP 51
5444: PUSH
5445: LD_INT 2
5447: ARRAY
5448: ST_TO_ADDR
// uc_nation = 3 ;
5449: LD_ADDR_OWVAR 21
5453: PUSH
5454: LD_INT 3
5456: ST_TO_ADDR
// hc_gallery =  ;
5457: LD_ADDR_OWVAR 33
5461: PUSH
5462: LD_STRING 
5464: ST_TO_ADDR
// hc_name =  ;
5465: LD_ADDR_OWVAR 26
5469: PUSH
5470: LD_STRING 
5472: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
5473: LD_ADDR_OWVAR 29
5477: PUSH
5478: LD_INT 9
5480: PPUSH
5481: LD_INT 11
5483: PPUSH
5484: CALL_OW 12
5488: PUSH
5489: LD_INT 10
5491: PPUSH
5492: LD_INT 12
5494: PPUSH
5495: CALL_OW 12
5499: PUSH
5500: EMPTY
5501: LIST
5502: LIST
5503: ST_TO_ADDR
// hc_skills = [ skill , skill , skill , skill ] ;
5504: LD_ADDR_OWVAR 31
5508: PUSH
5509: LD_VAR 0 4
5513: PUSH
5514: LD_VAR 0 4
5518: PUSH
5519: LD_VAR 0 4
5523: PUSH
5524: LD_VAR 0 4
5528: PUSH
5529: EMPTY
5530: LIST
5531: LIST
5532: LIST
5533: LIST
5534: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
5535: LD_ADDR_OWVAR 27
5539: PUSH
5540: LD_INT 1
5542: PPUSH
5543: LD_INT 2
5545: PPUSH
5546: CALL_OW 12
5550: ST_TO_ADDR
// hc_class = 1 ;
5551: LD_ADDR_OWVAR 28
5555: PUSH
5556: LD_INT 1
5558: ST_TO_ADDR
// un = CreateHuman ;
5559: LD_ADDR_VAR 0 3
5563: PUSH
5564: CALL_OW 44
5568: ST_TO_ADDR
// PlaceHumanInUnit ( un , building ) ;
5569: LD_VAR 0 3
5573: PPUSH
5574: LD_VAR 0 1
5578: PPUSH
5579: CALL_OW 52
// end ; if GetNation ( building ) = 3 and GetSide ( building ) = randomedColors [ 3 ] and GetBType ( building ) = b_bunker then
5583: LD_VAR 0 1
5587: PPUSH
5588: CALL_OW 248
5592: PUSH
5593: LD_INT 3
5595: EQUAL
5596: PUSH
5597: LD_VAR 0 1
5601: PPUSH
5602: CALL_OW 255
5606: PUSH
5607: LD_EXP 51
5611: PUSH
5612: LD_INT 3
5614: ARRAY
5615: EQUAL
5616: AND
5617: PUSH
5618: LD_VAR 0 1
5622: PPUSH
5623: CALL_OW 266
5627: PUSH
5628: LD_INT 32
5630: EQUAL
5631: AND
5632: IFFALSE 5827
// begin weapon = [ 43 , 44 , 46 ] ;
5634: LD_ADDR_VAR 0 2
5638: PUSH
5639: LD_INT 43
5641: PUSH
5642: LD_INT 44
5644: PUSH
5645: LD_INT 46
5647: PUSH
5648: EMPTY
5649: LIST
5650: LIST
5651: LIST
5652: ST_TO_ADDR
// PlaceWeaponTurret ( building , weapon [ Rand ( 1 , 3 ) ] ) ;
5653: LD_VAR 0 1
5657: PPUSH
5658: LD_VAR 0 2
5662: PUSH
5663: LD_INT 1
5665: PPUSH
5666: LD_INT 3
5668: PPUSH
5669: CALL_OW 12
5673: ARRAY
5674: PPUSH
5675: CALL_OW 431
// uc_side = randomedColors [ 3 ] ;
5679: LD_ADDR_OWVAR 20
5683: PUSH
5684: LD_EXP 51
5688: PUSH
5689: LD_INT 3
5691: ARRAY
5692: ST_TO_ADDR
// uc_nation = 3 ;
5693: LD_ADDR_OWVAR 21
5697: PUSH
5698: LD_INT 3
5700: ST_TO_ADDR
// hc_gallery =  ;
5701: LD_ADDR_OWVAR 33
5705: PUSH
5706: LD_STRING 
5708: ST_TO_ADDR
// hc_name =  ;
5709: LD_ADDR_OWVAR 26
5713: PUSH
5714: LD_STRING 
5716: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
5717: LD_ADDR_OWVAR 29
5721: PUSH
5722: LD_INT 9
5724: PPUSH
5725: LD_INT 11
5727: PPUSH
5728: CALL_OW 12
5732: PUSH
5733: LD_INT 10
5735: PPUSH
5736: LD_INT 12
5738: PPUSH
5739: CALL_OW 12
5743: PUSH
5744: EMPTY
5745: LIST
5746: LIST
5747: ST_TO_ADDR
// hc_skills = [ skill , skill , skill , skill ] ;
5748: LD_ADDR_OWVAR 31
5752: PUSH
5753: LD_VAR 0 4
5757: PUSH
5758: LD_VAR 0 4
5762: PUSH
5763: LD_VAR 0 4
5767: PUSH
5768: LD_VAR 0 4
5772: PUSH
5773: EMPTY
5774: LIST
5775: LIST
5776: LIST
5777: LIST
5778: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
5779: LD_ADDR_OWVAR 27
5783: PUSH
5784: LD_INT 1
5786: PPUSH
5787: LD_INT 2
5789: PPUSH
5790: CALL_OW 12
5794: ST_TO_ADDR
// hc_class = 1 ;
5795: LD_ADDR_OWVAR 28
5799: PUSH
5800: LD_INT 1
5802: ST_TO_ADDR
// un = CreateHuman ;
5803: LD_ADDR_VAR 0 3
5807: PUSH
5808: CALL_OW 44
5812: ST_TO_ADDR
// PlaceHumanInUnit ( un , building ) ;
5813: LD_VAR 0 3
5817: PPUSH
5818: LD_VAR 0 1
5822: PPUSH
5823: CALL_OW 52
// end ; end ; end_of_file
5827: PPOPN 4
5829: END
// every 1 1$0 + 0 0$0.3 marked 10 do
5830: GO 5832
5832: DISABLE
// begin CreateCratesAnywhere ( Rand ( 4 , 5 ) , true ) ;
5833: LD_INT 4
5835: PPUSH
5836: LD_INT 5
5838: PPUSH
5839: CALL_OW 12
5843: PPUSH
5844: LD_INT 1
5846: PPUSH
5847: CALL_OW 57
// enable ;
5851: ENABLE
// end ;
5852: END
// every 0 0$1 + 0 0$0.6 marked 10 do var i , amount ;
5853: GO 5855
5855: DISABLE
5856: LD_INT 0
5858: PPUSH
5859: PPUSH
// begin case tick of 1 .. 1 1$0 :
5860: LD_OWVAR 1
5864: PUSH
5865: LD_INT 1
5867: DOUBLE
5868: GREATEREQUAL
5869: IFFALSE 5877
5871: LD_INT 2100
5873: DOUBLE
5874: LESSEQUAL
5875: IFTRUE 5879
5877: GO 5907
5879: POP
// Wait ( shipments_density / 100 * Rand ( 0 0$10 , 0 0$30 ) ) ; 1 1$0 + 1 .. 5 5$0 :
5880: LD_EXP 14
5884: PUSH
5885: LD_INT 100
5887: DIVREAL
5888: PUSH
5889: LD_INT 350
5891: PPUSH
5892: LD_INT 1050
5894: PPUSH
5895: CALL_OW 12
5899: MUL
5900: PPUSH
5901: CALL_OW 67
5905: GO 6209
5907: LD_INT 2100
5909: PUSH
5910: LD_INT 1
5912: PLUS
5913: DOUBLE
5914: GREATEREQUAL
5915: IFFALSE 5923
5917: LD_INT 10500
5919: DOUBLE
5920: LESSEQUAL
5921: IFTRUE 5925
5923: GO 5953
5925: POP
// Wait ( shipments_density / 100 * Rand ( 0 0$30 , 0 0$45 ) ) ; 5 5$0 + 1 .. 10 10$0 :
5926: LD_EXP 14
5930: PUSH
5931: LD_INT 100
5933: DIVREAL
5934: PUSH
5935: LD_INT 1050
5937: PPUSH
5938: LD_INT 1575
5940: PPUSH
5941: CALL_OW 12
5945: MUL
5946: PPUSH
5947: CALL_OW 67
5951: GO 6209
5953: LD_INT 10500
5955: PUSH
5956: LD_INT 1
5958: PLUS
5959: DOUBLE
5960: GREATEREQUAL
5961: IFFALSE 5969
5963: LD_INT 21000
5965: DOUBLE
5966: LESSEQUAL
5967: IFTRUE 5971
5969: GO 5999
5971: POP
// Wait ( shipments_density / 100 * Rand ( 0 0$45 , 1 1$0 ) ) ; 10 10$0 + 1 .. 20 20$0 :
5972: LD_EXP 14
5976: PUSH
5977: LD_INT 100
5979: DIVREAL
5980: PUSH
5981: LD_INT 1575
5983: PPUSH
5984: LD_INT 2100
5986: PPUSH
5987: CALL_OW 12
5991: MUL
5992: PPUSH
5993: CALL_OW 67
5997: GO 6209
5999: LD_INT 21000
6001: PUSH
6002: LD_INT 1
6004: PLUS
6005: DOUBLE
6006: GREATEREQUAL
6007: IFFALSE 6015
6009: LD_INT 42000
6011: DOUBLE
6012: LESSEQUAL
6013: IFTRUE 6017
6015: GO 6045
6017: POP
// Wait ( shipments_density / 100 * Rand ( 1 1$0 , 1 1$15 ) ) ; 20 20$0 + 1 .. 30 30$0 :
6018: LD_EXP 14
6022: PUSH
6023: LD_INT 100
6025: DIVREAL
6026: PUSH
6027: LD_INT 2100
6029: PPUSH
6030: LD_INT 2625
6032: PPUSH
6033: CALL_OW 12
6037: MUL
6038: PPUSH
6039: CALL_OW 67
6043: GO 6209
6045: LD_INT 42000
6047: PUSH
6048: LD_INT 1
6050: PLUS
6051: DOUBLE
6052: GREATEREQUAL
6053: IFFALSE 6061
6055: LD_INT 63000
6057: DOUBLE
6058: LESSEQUAL
6059: IFTRUE 6063
6061: GO 6091
6063: POP
// Wait ( shipments_density / 100 * Rand ( 1 1$15 , 1 1$30 ) ) ; 30 30$0 + 1 .. 50 50$0 :
6064: LD_EXP 14
6068: PUSH
6069: LD_INT 100
6071: DIVREAL
6072: PUSH
6073: LD_INT 2625
6075: PPUSH
6076: LD_INT 3150
6078: PPUSH
6079: CALL_OW 12
6083: MUL
6084: PPUSH
6085: CALL_OW 67
6089: GO 6209
6091: LD_INT 63000
6093: PUSH
6094: LD_INT 1
6096: PLUS
6097: DOUBLE
6098: GREATEREQUAL
6099: IFFALSE 6107
6101: LD_INT 105000
6103: DOUBLE
6104: LESSEQUAL
6105: IFTRUE 6109
6107: GO 6137
6109: POP
// Wait ( shipments_density / 100 * Rand ( 1 1$30 , 1 1$45 ) ) ; 50 50$0 + 1 .. 300 300$0 :
6110: LD_EXP 14
6114: PUSH
6115: LD_INT 100
6117: DIVREAL
6118: PUSH
6119: LD_INT 3150
6121: PPUSH
6122: LD_INT 3675
6124: PPUSH
6125: CALL_OW 12
6129: MUL
6130: PPUSH
6131: CALL_OW 67
6135: GO 6209
6137: LD_INT 105000
6139: PUSH
6140: LD_INT 1
6142: PLUS
6143: DOUBLE
6144: GREATEREQUAL
6145: IFFALSE 6153
6147: LD_INT 630000
6149: DOUBLE
6150: LESSEQUAL
6151: IFTRUE 6155
6153: GO 6183
6155: POP
// Wait ( shipments_density / 100 * Rand ( 1 1$45 , 2 2$0 ) ) ; else
6156: LD_EXP 14
6160: PUSH
6161: LD_INT 100
6163: DIVREAL
6164: PUSH
6165: LD_INT 3675
6167: PPUSH
6168: LD_INT 4200
6170: PPUSH
6171: CALL_OW 12
6175: MUL
6176: PPUSH
6177: CALL_OW 67
6181: GO 6209
6183: POP
// Wait ( shipments_density / 100 * Rand ( 2 2$0 , 2 2$30 ) ) ; end ;
6184: LD_EXP 14
6188: PUSH
6189: LD_INT 100
6191: DIVREAL
6192: PUSH
6193: LD_INT 4200
6195: PPUSH
6196: LD_INT 5250
6198: PPUSH
6199: CALL_OW 12
6203: MUL
6204: PPUSH
6205: CALL_OW 67
// amount := Rand ( 3 , 5 ) ;
6209: LD_ADDR_VAR 0 2
6213: PUSH
6214: LD_INT 3
6216: PPUSH
6217: LD_INT 5
6219: PPUSH
6220: CALL_OW 12
6224: ST_TO_ADDR
// for i in ( Side_Positions diff [ 0 ] ) do
6225: LD_ADDR_VAR 0 1
6229: PUSH
6230: LD_EXP 32
6234: PUSH
6235: LD_INT 0
6237: PUSH
6238: EMPTY
6239: LIST
6240: DIFF
6241: PUSH
6242: FOR_IN
6243: IFFALSE 6292
// CreateCratesXYR ( amount , start_def [ i ] [ 1 ] , start_def [ i ] [ 2 ] , 20 , true ) ;
6245: LD_VAR 0 2
6249: PPUSH
6250: LD_EXP 38
6254: PUSH
6255: LD_VAR 0 1
6259: ARRAY
6260: PUSH
6261: LD_INT 1
6263: ARRAY
6264: PPUSH
6265: LD_EXP 38
6269: PUSH
6270: LD_VAR 0 1
6274: ARRAY
6275: PUSH
6276: LD_INT 2
6278: ARRAY
6279: PPUSH
6280: LD_INT 20
6282: PPUSH
6283: LD_INT 1
6285: PPUSH
6286: CALL_OW 56
6290: GO 6242
6292: POP
6293: POP
// enable ;
6294: ENABLE
// end ; end_of_file
6295: PPOPN 2
6297: END
// function apeman_init ; begin
6298: LD_INT 0
6300: PPUSH
// uc_side := 0 ;
6301: LD_ADDR_OWVAR 20
6305: PUSH
6306: LD_INT 0
6308: ST_TO_ADDR
// uc_nation := nation_nature ;
6309: LD_ADDR_OWVAR 21
6313: PUSH
6314: LD_INT 0
6316: ST_TO_ADDR
// hc_class := class_apeman ;
6317: LD_ADDR_OWVAR 28
6321: PUSH
6322: LD_INT 12
6324: ST_TO_ADDR
// hc_basic_skills := [ 1 , 1 , 1 , 1 ] ;
6325: LD_ADDR_OWVAR 30
6329: PUSH
6330: LD_INT 1
6332: PUSH
6333: LD_INT 1
6335: PUSH
6336: LD_INT 1
6338: PUSH
6339: LD_INT 1
6341: PUSH
6342: EMPTY
6343: LIST
6344: LIST
6345: LIST
6346: LIST
6347: ST_TO_ADDR
// hc_skills := [ 1 , 1 , 1 , 1 ] ;
6348: LD_ADDR_OWVAR 31
6352: PUSH
6353: LD_INT 1
6355: PUSH
6356: LD_INT 1
6358: PUSH
6359: LD_INT 1
6361: PUSH
6362: LD_INT 1
6364: PUSH
6365: EMPTY
6366: LIST
6367: LIST
6368: LIST
6369: LIST
6370: ST_TO_ADDR
// hc_attr := [ 10 , 12 ] ;
6371: LD_ADDR_OWVAR 29
6375: PUSH
6376: LD_INT 10
6378: PUSH
6379: LD_INT 12
6381: PUSH
6382: EMPTY
6383: LIST
6384: LIST
6385: ST_TO_ADDR
// hc_sex := sex_male ;
6386: LD_ADDR_OWVAR 27
6390: PUSH
6391: LD_INT 1
6393: ST_TO_ADDR
// hc_importance := 0 ;
6394: LD_ADDR_OWVAR 32
6398: PUSH
6399: LD_INT 0
6401: ST_TO_ADDR
// hc_agressivity := Rand ( - 20 , 20 ) ;
6402: LD_ADDR_OWVAR 35
6406: PUSH
6407: LD_INT 20
6409: NEG
6410: PPUSH
6411: LD_INT 20
6413: PPUSH
6414: CALL_OW 12
6418: ST_TO_ADDR
// end ;
6419: LD_VAR 0 1
6423: RET
// function prepare_apemen ; var i , j , un , ape , first , d1 , d2 ; begin
6424: LD_INT 0
6426: PPUSH
6427: PPUSH
6428: PPUSH
6429: PPUSH
6430: PPUSH
6431: PPUSH
6432: PPUSH
6433: PPUSH
// ape := 0 ;
6434: LD_ADDR_VAR 0 5
6438: PUSH
6439: LD_INT 0
6441: ST_TO_ADDR
// repeat Wait ( ( ape + 1 ) * Rand ( 0 0$10 , 1 1$0 ) ) ;
6442: LD_VAR 0 5
6446: PUSH
6447: LD_INT 1
6449: PLUS
6450: PUSH
6451: LD_INT 350
6453: PPUSH
6454: LD_INT 2100
6456: PPUSH
6457: CALL_OW 12
6461: MUL
6462: PPUSH
6463: CALL_OW 67
// apeman_init ;
6467: CALL 6298 0 0
// PlaceUnitArea ( CreateHuman , Base1ApeArea , false ) ;
6471: CALL_OW 44
6475: PPUSH
6476: LD_INT 6
6478: PPUSH
6479: LD_INT 0
6481: PPUSH
6482: CALL_OW 49
// PlaceUnitArea ( CreateHuman , Base2ApeArea , false ) ;
6486: CALL_OW 44
6490: PPUSH
6491: LD_INT 7
6493: PPUSH
6494: LD_INT 0
6496: PPUSH
6497: CALL_OW 49
// PlaceUnitArea ( CreateHuman , Base3ApeArea , false ) ;
6501: CALL_OW 44
6505: PPUSH
6506: LD_INT 9
6508: PPUSH
6509: LD_INT 0
6511: PPUSH
6512: CALL_OW 49
// PlaceUnitArea ( CreateHuman , Base4ApeArea , false ) ;
6516: CALL_OW 44
6520: PPUSH
6521: LD_INT 8
6523: PPUSH
6524: LD_INT 0
6526: PPUSH
6527: CALL_OW 49
// Wait ( 3 ) ;
6531: LD_INT 3
6533: PPUSH
6534: CALL_OW 67
// ape := ape + 1 ;
6538: LD_ADDR_VAR 0 5
6542: PUSH
6543: LD_VAR 0 5
6547: PUSH
6548: LD_INT 1
6550: PLUS
6551: ST_TO_ADDR
// until ape >= amount_of_apemen ;
6552: LD_VAR 0 5
6556: PUSH
6557: LD_EXP 16
6561: GREATEREQUAL
6562: IFFALSE 6442
// end ;
6564: LD_VAR 0 1
6568: RET
// every 0 0$15 do
6569: GO 6571
6571: DISABLE
// begin prepare_apemen ;
6572: CALL 6424 0 0
// end ; end_of_file
6576: END
// export ExtraStrings ; export function ShowTimer ; var AllStrings ; begin
6577: LD_INT 0
6579: PPUSH
6580: PPUSH
// AllStrings := [ #Multi1x1-Time , tick ] ;
6581: LD_ADDR_VAR 0 2
6585: PUSH
6586: LD_STRING #Multi1x1-Time
6588: PUSH
6589: LD_OWVAR 1
6593: PUSH
6594: EMPTY
6595: LIST
6596: LIST
6597: ST_TO_ADDR
// if ( ExtraStrings ) then
6598: LD_EXP 50
6602: IFFALSE 6624
// AllStrings := AllStrings ^  ^ ExtraStrings ;
6604: LD_ADDR_VAR 0 2
6608: PUSH
6609: LD_VAR 0 2
6613: PUSH
6614: LD_STRING 
6616: ADD
6617: PUSH
6618: LD_EXP 50
6622: ADD
6623: ST_TO_ADDR
// Display_Strings := AllStrings ;
6624: LD_ADDR_OWVAR 47
6628: PUSH
6629: LD_VAR 0 2
6633: ST_TO_ADDR
// end ;
6634: LD_VAR 0 1
6638: RET
// every 0 0$1 do
6639: GO 6641
6641: DISABLE
// begin ShowTimer ;
6642: CALL 6577 0 0
// enable ;
6646: ENABLE
// end ; end_of_file
6647: END
// export randomedColors ; every 0 0$3 do var i ;
6648: GO 6650
6650: DISABLE
6651: LD_INT 0
6653: PPUSH
// begin if ai_russian1 = 1 and ai_russian2 = 1 then
6654: LD_EXP 22
6658: PUSH
6659: LD_INT 1
6661: EQUAL
6662: PUSH
6663: LD_EXP 23
6667: PUSH
6668: LD_INT 1
6670: EQUAL
6671: AND
6672: IFFALSE 6770
// begin for i in FilterUnitsInArea ( RussianBase1 , [ f_side , 0 ] ) do
6674: LD_ADDR_VAR 0 1
6678: PUSH
6679: LD_INT 10
6681: PPUSH
6682: LD_INT 22
6684: PUSH
6685: LD_INT 0
6687: PUSH
6688: EMPTY
6689: LIST
6690: LIST
6691: PPUSH
6692: CALL_OW 70
6696: PUSH
6697: FOR_IN
6698: IFFALSE 6720
// begin SetSide ( i , randomedColors [ 2 ] ) ;
6700: LD_VAR 0 1
6704: PPUSH
6705: LD_EXP 51
6709: PUSH
6710: LD_INT 2
6712: ARRAY
6713: PPUSH
6714: CALL_OW 235
// end ;
6718: GO 6697
6720: POP
6721: POP
// for i in FilterUnitsInArea ( RussianBase2 , [ f_side , 0 ] ) do
6722: LD_ADDR_VAR 0 1
6726: PUSH
6727: LD_INT 11
6729: PPUSH
6730: LD_INT 22
6732: PUSH
6733: LD_INT 0
6735: PUSH
6736: EMPTY
6737: LIST
6738: LIST
6739: PPUSH
6740: CALL_OW 70
6744: PUSH
6745: FOR_IN
6746: IFFALSE 6768
// begin SetSide ( i , randomedColors [ 3 ] ) ;
6748: LD_VAR 0 1
6752: PPUSH
6753: LD_EXP 51
6757: PUSH
6758: LD_INT 3
6760: ARRAY
6761: PPUSH
6762: CALL_OW 235
// end ;
6766: GO 6745
6768: POP
6769: POP
// end ; if ai_american1 = 1 and ai_american2 = 1 then
6770: LD_EXP 20
6774: PUSH
6775: LD_INT 1
6777: EQUAL
6778: PUSH
6779: LD_EXP 21
6783: PUSH
6784: LD_INT 1
6786: EQUAL
6787: AND
6788: IFFALSE 6886
// begin for i in FilterUnitsInArea ( AmericanBase1 , [ f_side , 0 ] ) do
6790: LD_ADDR_VAR 0 1
6794: PUSH
6795: LD_INT 12
6797: PPUSH
6798: LD_INT 22
6800: PUSH
6801: LD_INT 0
6803: PUSH
6804: EMPTY
6805: LIST
6806: LIST
6807: PPUSH
6808: CALL_OW 70
6812: PUSH
6813: FOR_IN
6814: IFFALSE 6836
// begin SetSide ( i , randomedColors [ 2 ] ) ;
6816: LD_VAR 0 1
6820: PPUSH
6821: LD_EXP 51
6825: PUSH
6826: LD_INT 2
6828: ARRAY
6829: PPUSH
6830: CALL_OW 235
// end ;
6834: GO 6813
6836: POP
6837: POP
// for i in FilterUnitsInArea ( AmericanBase2 , [ f_side , 0 ] ) do
6838: LD_ADDR_VAR 0 1
6842: PUSH
6843: LD_INT 13
6845: PPUSH
6846: LD_INT 22
6848: PUSH
6849: LD_INT 0
6851: PUSH
6852: EMPTY
6853: LIST
6854: LIST
6855: PPUSH
6856: CALL_OW 70
6860: PUSH
6861: FOR_IN
6862: IFFALSE 6884
// begin SetSide ( i , randomedColors [ 3 ] ) ;
6864: LD_VAR 0 1
6868: PPUSH
6869: LD_EXP 51
6873: PUSH
6874: LD_INT 3
6876: ARRAY
6877: PPUSH
6878: CALL_OW 235
// end ;
6882: GO 6861
6884: POP
6885: POP
// end ; end ;
6886: PPOPN 1
6888: END
// every 0 0$1 do
6889: GO 6891
6891: DISABLE
// begin MultiplayerColorCheck ;
6892: CALL 6897 0 0
// end ;
6896: END
// export sideP1 , sideP2 ; export function MultiplayerColorCheck ; var i , j , z , tempSide , un , deleteColors , lastIndex , side_list ; begin
6897: LD_INT 0
6899: PPUSH
6900: PPUSH
6901: PPUSH
6902: PPUSH
6903: PPUSH
6904: PPUSH
6905: PPUSH
6906: PPUSH
6907: PPUSH
// if ai_russian1 = 1 and ai_russian2 = 1 then
6908: LD_EXP 22
6912: PUSH
6913: LD_INT 1
6915: EQUAL
6916: PUSH
6917: LD_EXP 23
6921: PUSH
6922: LD_INT 1
6924: EQUAL
6925: AND
6926: IFFALSE 6954
// begin sideP1 = GetSide ( amgeneral1 ) ;
6928: LD_ADDR_EXP 52
6932: PUSH
6933: LD_INT 1
6935: PPUSH
6936: CALL_OW 255
6940: ST_TO_ADDR
// sideP2 = GetSide ( amgeneral2 ) ;
6941: LD_ADDR_EXP 53
6945: PUSH
6946: LD_INT 3
6948: PPUSH
6949: CALL_OW 255
6953: ST_TO_ADDR
// end ; if ai_american1 = 1 and ai_american2 = 1 then
6954: LD_EXP 20
6958: PUSH
6959: LD_INT 1
6961: EQUAL
6962: PUSH
6963: LD_EXP 21
6967: PUSH
6968: LD_INT 1
6970: EQUAL
6971: AND
6972: IFFALSE 7000
// begin sideP1 = GetSide ( rugeneral1 ) ;
6974: LD_ADDR_EXP 52
6978: PUSH
6979: LD_INT 8
6981: PPUSH
6982: CALL_OW 255
6986: ST_TO_ADDR
// sideP2 = GetSide ( rugeneral2 ) ;
6987: LD_ADDR_EXP 53
6991: PUSH
6992: LD_INT 6
6994: PPUSH
6995: CALL_OW 255
6999: ST_TO_ADDR
// end ; side_list = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ] diff sideP1 ^ sideP2 ;
7000: LD_ADDR_VAR 0 9
7004: PUSH
7005: LD_INT 1
7007: PUSH
7008: LD_INT 2
7010: PUSH
7011: LD_INT 3
7013: PUSH
7014: LD_INT 4
7016: PUSH
7017: LD_INT 5
7019: PUSH
7020: LD_INT 6
7022: PUSH
7023: LD_INT 7
7025: PUSH
7026: LD_INT 8
7028: PUSH
7029: EMPTY
7030: LIST
7031: LIST
7032: LIST
7033: LIST
7034: LIST
7035: LIST
7036: LIST
7037: LIST
7038: PUSH
7039: LD_EXP 52
7043: PUSH
7044: LD_EXP 53
7048: ADD
7049: DIFF
7050: ST_TO_ADDR
// for j = 1 to 5 do
7051: LD_ADDR_VAR 0 3
7055: PUSH
7056: DOUBLE
7057: LD_INT 1
7059: DEC
7060: ST_TO_ADDR
7061: LD_INT 5
7063: PUSH
7064: FOR_TO
7065: IFFALSE 7215
// begin tempSide = side_list [ Rand ( 1 , lastIndeX ) ] ;
7067: LD_ADDR_VAR 0 5
7071: PUSH
7072: LD_VAR 0 9
7076: PUSH
7077: LD_INT 1
7079: PPUSH
7080: LD_VAR 0 8
7084: PPUSH
7085: CALL_OW 12
7089: ARRAY
7090: ST_TO_ADDR
// deleteColors = [ ] ;
7091: LD_ADDR_VAR 0 7
7095: PUSH
7096: EMPTY
7097: ST_TO_ADDR
// for z = 1 to side_list do
7098: LD_ADDR_VAR 0 4
7102: PUSH
7103: DOUBLE
7104: LD_INT 1
7106: DEC
7107: ST_TO_ADDR
7108: LD_VAR 0 9
7112: PUSH
7113: FOR_TO
7114: IFFALSE 7211
// begin if side_list [ z ] = tempSide then
7116: LD_VAR 0 9
7120: PUSH
7121: LD_VAR 0 4
7125: ARRAY
7126: PUSH
7127: LD_VAR 0 5
7131: EQUAL
7132: IFFALSE 7209
// begin randomedColors = randomedColors ^ side_list [ z ] ;
7134: LD_ADDR_EXP 51
7138: PUSH
7139: LD_EXP 51
7143: PUSH
7144: LD_VAR 0 9
7148: PUSH
7149: LD_VAR 0 4
7153: ARRAY
7154: ADD
7155: ST_TO_ADDR
// deleteColors = deleteColors ^ side_list [ z ] ;
7156: LD_ADDR_VAR 0 7
7160: PUSH
7161: LD_VAR 0 7
7165: PUSH
7166: LD_VAR 0 9
7170: PUSH
7171: LD_VAR 0 4
7175: ARRAY
7176: ADD
7177: ST_TO_ADDR
// side_list = side_list diff deleteColors ;
7178: LD_ADDR_VAR 0 9
7182: PUSH
7183: LD_VAR 0 9
7187: PUSH
7188: LD_VAR 0 7
7192: DIFF
7193: ST_TO_ADDR
// lastIndex = sizeTab ( side_list ) ;
7194: LD_ADDR_VAR 0 8
7198: PUSH
7199: LD_VAR 0 9
7203: PPUSH
7204: CALL 7222 0 1
7208: ST_TO_ADDR
// end ; end ;
7209: GO 7113
7211: POP
7212: POP
// end ;
7213: GO 7064
7215: POP
7216: POP
// end ; end_of_file
7217: LD_VAR 0 1
7221: RET
// export function SizeTab ( table ) ; var i , lastIndex ; begin
7222: LD_INT 0
7224: PPUSH
7225: PPUSH
7226: PPUSH
// lastIndex := 0 ;
7227: LD_ADDR_VAR 0 4
7231: PUSH
7232: LD_INT 0
7234: ST_TO_ADDR
// for i in table do
7235: LD_ADDR_VAR 0 3
7239: PUSH
7240: LD_VAR 0 1
7244: PUSH
7245: FOR_IN
7246: IFFALSE 7264
// begin lastIndex := lastIndex + 1 ;
7248: LD_ADDR_VAR 0 4
7252: PUSH
7253: LD_VAR 0 4
7257: PUSH
7258: LD_INT 1
7260: PLUS
7261: ST_TO_ADDR
// end ;
7262: GO 7245
7264: POP
7265: POP
// result = lastIndex ;
7266: LD_ADDR_VAR 0 2
7270: PUSH
7271: LD_VAR 0 4
7275: ST_TO_ADDR
// end ;
7276: LD_VAR 0 2
7280: RET
// export function MultiplayerRespawnInside ( side , nation , build , skill , clas , count ) ; var i , l , un ; begin
7281: LD_INT 0
7283: PPUSH
7284: PPUSH
7285: PPUSH
7286: PPUSH
// l = 0 ;
7287: LD_ADDR_VAR 0 9
7291: PUSH
7292: LD_INT 0
7294: ST_TO_ADDR
// for i in build do
7295: LD_ADDR_VAR 0 8
7299: PUSH
7300: LD_VAR 0 3
7304: PUSH
7305: FOR_IN
7306: IFFALSE 7499
// begin if IsInUnit ( i ) = 0 then
7308: LD_VAR 0 8
7312: PPUSH
7313: CALL_OW 310
7317: PUSH
7318: LD_INT 0
7320: EQUAL
7321: IFFALSE 7497
// begin repeat begin uc_side = side ;
7323: LD_ADDR_OWVAR 20
7327: PUSH
7328: LD_VAR 0 1
7332: ST_TO_ADDR
// uc_nation = nation ;
7333: LD_ADDR_OWVAR 21
7337: PUSH
7338: LD_VAR 0 2
7342: ST_TO_ADDR
// hc_gallery =  ;
7343: LD_ADDR_OWVAR 33
7347: PUSH
7348: LD_STRING 
7350: ST_TO_ADDR
// hc_name =  ;
7351: LD_ADDR_OWVAR 26
7355: PUSH
7356: LD_STRING 
7358: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
7359: LD_ADDR_OWVAR 29
7363: PUSH
7364: LD_INT 9
7366: PPUSH
7367: LD_INT 11
7369: PPUSH
7370: CALL_OW 12
7374: PUSH
7375: LD_INT 10
7377: PPUSH
7378: LD_INT 12
7380: PPUSH
7381: CALL_OW 12
7385: PUSH
7386: EMPTY
7387: LIST
7388: LIST
7389: ST_TO_ADDR
// hc_skills = [ skill , skill , skill , skill ] ;
7390: LD_ADDR_OWVAR 31
7394: PUSH
7395: LD_VAR 0 4
7399: PUSH
7400: LD_VAR 0 4
7404: PUSH
7405: LD_VAR 0 4
7409: PUSH
7410: LD_VAR 0 4
7414: PUSH
7415: EMPTY
7416: LIST
7417: LIST
7418: LIST
7419: LIST
7420: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
7421: LD_ADDR_OWVAR 27
7425: PUSH
7426: LD_INT 1
7428: PPUSH
7429: LD_INT 2
7431: PPUSH
7432: CALL_OW 12
7436: ST_TO_ADDR
// hc_class = clas ;
7437: LD_ADDR_OWVAR 28
7441: PUSH
7442: LD_VAR 0 5
7446: ST_TO_ADDR
// un = CreateHuman ;
7447: LD_ADDR_VAR 0 10
7451: PUSH
7452: CALL_OW 44
7456: ST_TO_ADDR
// PlaceHumanInUnit ( un , build ) ;
7457: LD_VAR 0 10
7461: PPUSH
7462: LD_VAR 0 3
7466: PPUSH
7467: CALL_OW 52
// l = l + 1 ;
7471: LD_ADDR_VAR 0 9
7475: PUSH
7476: LD_VAR 0 9
7480: PUSH
7481: LD_INT 1
7483: PLUS
7484: ST_TO_ADDR
// end until l = count ;
7485: LD_VAR 0 9
7489: PUSH
7490: LD_VAR 0 6
7494: EQUAL
7495: IFFALSE 7323
// end ; end ;
7497: GO 7305
7499: POP
7500: POP
// end ; end_of_file
7501: LD_VAR 0 7
7505: RET
// every 0 0$1 trigger ai_american1 = 1 and ai_american2 = 1 do
7506: LD_EXP 20
7510: PUSH
7511: LD_INT 1
7513: EQUAL
7514: PUSH
7515: LD_EXP 21
7519: PUSH
7520: LD_INT 1
7522: EQUAL
7523: AND
7524: IFFALSE 7976
7526: GO 7528
7528: DISABLE
// begin SetAttitude ( randomedColors [ 2 ] , randomedColors [ 3 ] , att_friend , true ) ;
7529: LD_EXP 51
7533: PUSH
7534: LD_INT 2
7536: ARRAY
7537: PPUSH
7538: LD_EXP 51
7542: PUSH
7543: LD_INT 3
7545: ARRAY
7546: PPUSH
7547: LD_INT 1
7549: PPUSH
7550: LD_INT 1
7552: PPUSH
7553: CALL_OW 80
// SetAttitude ( randomedColors [ 3 ] , randomedColors [ 2 ] , att_friend , true ) ;
7557: LD_EXP 51
7561: PUSH
7562: LD_INT 3
7564: ARRAY
7565: PPUSH
7566: LD_EXP 51
7570: PUSH
7571: LD_INT 2
7573: ARRAY
7574: PPUSH
7575: LD_INT 1
7577: PPUSH
7578: LD_INT 1
7580: PPUSH
7581: CALL_OW 80
// SetAttitude ( randomedColors [ 4 ] , randomedColors [ 3 ] , att_friend , true ) ;
7585: LD_EXP 51
7589: PUSH
7590: LD_INT 4
7592: ARRAY
7593: PPUSH
7594: LD_EXP 51
7598: PUSH
7599: LD_INT 3
7601: ARRAY
7602: PPUSH
7603: LD_INT 1
7605: PPUSH
7606: LD_INT 1
7608: PPUSH
7609: CALL_OW 80
// SetAttitude ( randomedColors [ 4 ] , randomedColors [ 2 ] , att_friend , true ) ;
7613: LD_EXP 51
7617: PUSH
7618: LD_INT 4
7620: ARRAY
7621: PPUSH
7622: LD_EXP 51
7626: PUSH
7627: LD_INT 2
7629: ARRAY
7630: PPUSH
7631: LD_INT 1
7633: PPUSH
7634: LD_INT 1
7636: PPUSH
7637: CALL_OW 80
// SetAttitude ( randomedColors [ 3 ] , randomedColors [ 4 ] , att_friend , true ) ;
7641: LD_EXP 51
7645: PUSH
7646: LD_INT 3
7648: ARRAY
7649: PPUSH
7650: LD_EXP 51
7654: PUSH
7655: LD_INT 4
7657: ARRAY
7658: PPUSH
7659: LD_INT 1
7661: PPUSH
7662: LD_INT 1
7664: PPUSH
7665: CALL_OW 80
// SetAttitude ( randomedColors [ 2 ] , randomedColors [ 4 ] , att_friend , true ) ;
7669: LD_EXP 51
7673: PUSH
7674: LD_INT 2
7676: ARRAY
7677: PPUSH
7678: LD_EXP 51
7682: PUSH
7683: LD_INT 4
7685: ARRAY
7686: PPUSH
7687: LD_INT 1
7689: PPUSH
7690: LD_INT 1
7692: PPUSH
7693: CALL_OW 80
// SetAttitude ( randomedColors [ 4 ] , randomedColors [ 3 ] , att_friend , true ) ;
7697: LD_EXP 51
7701: PUSH
7702: LD_INT 4
7704: ARRAY
7705: PPUSH
7706: LD_EXP 51
7710: PUSH
7711: LD_INT 3
7713: ARRAY
7714: PPUSH
7715: LD_INT 1
7717: PPUSH
7718: LD_INT 1
7720: PPUSH
7721: CALL_OW 80
// SetAttitude ( randomedColors [ 4 ] , randomedColors [ 2 ] , att_friend , true ) ;
7725: LD_EXP 51
7729: PUSH
7730: LD_INT 4
7732: ARRAY
7733: PPUSH
7734: LD_EXP 51
7738: PUSH
7739: LD_INT 2
7741: ARRAY
7742: PPUSH
7743: LD_INT 1
7745: PPUSH
7746: LD_INT 1
7748: PPUSH
7749: CALL_OW 80
// SetAttitude ( randomedColors [ 3 ] , randomedColors [ 4 ] , att_friend , true ) ;
7753: LD_EXP 51
7757: PUSH
7758: LD_INT 3
7760: ARRAY
7761: PPUSH
7762: LD_EXP 51
7766: PUSH
7767: LD_INT 4
7769: ARRAY
7770: PPUSH
7771: LD_INT 1
7773: PPUSH
7774: LD_INT 1
7776: PPUSH
7777: CALL_OW 80
// SetAttitude ( randomedColors [ 2 ] , randomedColors [ 4 ] , att_friend , true ) ;
7781: LD_EXP 51
7785: PUSH
7786: LD_INT 2
7788: ARRAY
7789: PPUSH
7790: LD_EXP 51
7794: PUSH
7795: LD_INT 4
7797: ARRAY
7798: PPUSH
7799: LD_INT 1
7801: PPUSH
7802: LD_INT 1
7804: PPUSH
7805: CALL_OW 80
// HealUnitInBase ( randomedColors [ 2 ] , American1HealArea , AmericanBase1 , Am1Lab ) ;
7809: LD_EXP 51
7813: PUSH
7814: LD_INT 2
7816: ARRAY
7817: PPUSH
7818: LD_INT 14
7820: PPUSH
7821: LD_INT 12
7823: PPUSH
7824: LD_EXP 56
7828: PPUSH
7829: CALL 10281 0 4
// HealUnitInBase ( randomedColors [ 3 ] , American2HealArea , AmericanBase2 , Am2Lab ) ;
7833: LD_EXP 51
7837: PUSH
7838: LD_INT 3
7840: ARRAY
7841: PPUSH
7842: LD_INT 15
7844: PPUSH
7845: LD_INT 13
7847: PPUSH
7848: LD_EXP 61
7852: PPUSH
7853: CALL 10281 0 4
// RepairBuilding ( randomedColors [ 2 ] , Am1Depot ) ;
7857: LD_EXP 51
7861: PUSH
7862: LD_INT 2
7864: ARRAY
7865: PPUSH
7866: LD_EXP 54
7870: PPUSH
7871: CALL 10026 0 2
// RepairBuilding ( randomedColors [ 3 ] , Am2Depot ) ;
7875: LD_EXP 51
7879: PUSH
7880: LD_INT 3
7882: ARRAY
7883: PPUSH
7884: LD_EXP 59
7888: PPUSH
7889: CALL 10026 0 2
// ReBuildBuildings ( randomedColors [ 2 ] ) ;
7893: LD_EXP 51
7897: PUSH
7898: LD_INT 2
7900: ARRAY
7901: PPUSH
7902: CALL 14058 0 1
// ReBuildBuildings ( randomedColors [ 3 ] ) ;
7906: LD_EXP 51
7910: PUSH
7911: LD_INT 3
7913: ARRAY
7914: PPUSH
7915: CALL 14058 0 1
// if GetLives ( Am1Depot ) < 252 then
7919: LD_EXP 54
7923: PPUSH
7924: CALL_OW 256
7928: PUSH
7929: LD_INT 252
7931: LESS
7932: IFFALSE 7947
// begin EscapeFromBunkers ( randomedColors [ 2 ] ) ;
7934: LD_EXP 51
7938: PUSH
7939: LD_INT 2
7941: ARRAY
7942: PPUSH
7943: CALL 14248 0 1
// end ; if GetLives ( Am2Depot ) < 252 then
7947: LD_EXP 59
7951: PPUSH
7952: CALL_OW 256
7956: PUSH
7957: LD_INT 252
7959: LESS
7960: IFFALSE 7975
// begin EscapeFromBunkers ( randomedColors [ 3 ] ) ;
7962: LD_EXP 51
7966: PUSH
7967: LD_INT 3
7969: ARRAY
7970: PPUSH
7971: CALL 14248 0 1
// end ; enable ;
7975: ENABLE
// end ;
7976: END
// every 0 0$1 trigger ai_russian1 = 1 and ai_russian2 = 1 do
7977: LD_EXP 22
7981: PUSH
7982: LD_INT 1
7984: EQUAL
7985: PUSH
7986: LD_EXP 23
7990: PUSH
7991: LD_INT 1
7993: EQUAL
7994: AND
7995: IFFALSE 8447
7997: GO 7999
7999: DISABLE
// begin SetAttitude ( randomedColors [ 2 ] , randomedColors [ 3 ] , att_friend , true ) ;
8000: LD_EXP 51
8004: PUSH
8005: LD_INT 2
8007: ARRAY
8008: PPUSH
8009: LD_EXP 51
8013: PUSH
8014: LD_INT 3
8016: ARRAY
8017: PPUSH
8018: LD_INT 1
8020: PPUSH
8021: LD_INT 1
8023: PPUSH
8024: CALL_OW 80
// SetAttitude ( randomedColors [ 3 ] , randomedColors [ 2 ] , att_friend , true ) ;
8028: LD_EXP 51
8032: PUSH
8033: LD_INT 3
8035: ARRAY
8036: PPUSH
8037: LD_EXP 51
8041: PUSH
8042: LD_INT 2
8044: ARRAY
8045: PPUSH
8046: LD_INT 1
8048: PPUSH
8049: LD_INT 1
8051: PPUSH
8052: CALL_OW 80
// SetAttitude ( randomedColors [ 5 ] , randomedColors [ 3 ] , att_friend , true ) ;
8056: LD_EXP 51
8060: PUSH
8061: LD_INT 5
8063: ARRAY
8064: PPUSH
8065: LD_EXP 51
8069: PUSH
8070: LD_INT 3
8072: ARRAY
8073: PPUSH
8074: LD_INT 1
8076: PPUSH
8077: LD_INT 1
8079: PPUSH
8080: CALL_OW 80
// SetAttitude ( randomedColors [ 5 ] , randomedColors [ 2 ] , att_friend , true ) ;
8084: LD_EXP 51
8088: PUSH
8089: LD_INT 5
8091: ARRAY
8092: PPUSH
8093: LD_EXP 51
8097: PUSH
8098: LD_INT 2
8100: ARRAY
8101: PPUSH
8102: LD_INT 1
8104: PPUSH
8105: LD_INT 1
8107: PPUSH
8108: CALL_OW 80
// SetAttitude ( randomedColors [ 3 ] , randomedColors [ 5 ] , att_friend , true ) ;
8112: LD_EXP 51
8116: PUSH
8117: LD_INT 3
8119: ARRAY
8120: PPUSH
8121: LD_EXP 51
8125: PUSH
8126: LD_INT 5
8128: ARRAY
8129: PPUSH
8130: LD_INT 1
8132: PPUSH
8133: LD_INT 1
8135: PPUSH
8136: CALL_OW 80
// SetAttitude ( randomedColors [ 2 ] , randomedColors [ 5 ] , att_friend , true ) ;
8140: LD_EXP 51
8144: PUSH
8145: LD_INT 2
8147: ARRAY
8148: PPUSH
8149: LD_EXP 51
8153: PUSH
8154: LD_INT 5
8156: ARRAY
8157: PPUSH
8158: LD_INT 1
8160: PPUSH
8161: LD_INT 1
8163: PPUSH
8164: CALL_OW 80
// SetAttitude ( randomedColors [ 4 ] , randomedColors [ 3 ] , att_friend , true ) ;
8168: LD_EXP 51
8172: PUSH
8173: LD_INT 4
8175: ARRAY
8176: PPUSH
8177: LD_EXP 51
8181: PUSH
8182: LD_INT 3
8184: ARRAY
8185: PPUSH
8186: LD_INT 1
8188: PPUSH
8189: LD_INT 1
8191: PPUSH
8192: CALL_OW 80
// SetAttitude ( randomedColors [ 4 ] , randomedColors [ 2 ] , att_friend , true ) ;
8196: LD_EXP 51
8200: PUSH
8201: LD_INT 4
8203: ARRAY
8204: PPUSH
8205: LD_EXP 51
8209: PUSH
8210: LD_INT 2
8212: ARRAY
8213: PPUSH
8214: LD_INT 1
8216: PPUSH
8217: LD_INT 1
8219: PPUSH
8220: CALL_OW 80
// SetAttitude ( randomedColors [ 3 ] , randomedColors [ 4 ] , att_friend , true ) ;
8224: LD_EXP 51
8228: PUSH
8229: LD_INT 3
8231: ARRAY
8232: PPUSH
8233: LD_EXP 51
8237: PUSH
8238: LD_INT 4
8240: ARRAY
8241: PPUSH
8242: LD_INT 1
8244: PPUSH
8245: LD_INT 1
8247: PPUSH
8248: CALL_OW 80
// SetAttitude ( randomedColors [ 2 ] , randomedColors [ 4 ] , att_friend , true ) ;
8252: LD_EXP 51
8256: PUSH
8257: LD_INT 2
8259: ARRAY
8260: PPUSH
8261: LD_EXP 51
8265: PUSH
8266: LD_INT 4
8268: ARRAY
8269: PPUSH
8270: LD_INT 1
8272: PPUSH
8273: LD_INT 1
8275: PPUSH
8276: CALL_OW 80
// HealUnitInBase ( randomedColors [ 2 ] , Russian1HealArea , RussianBase1 , Ru1Lab ) ;
8280: LD_EXP 51
8284: PUSH
8285: LD_INT 2
8287: ARRAY
8288: PPUSH
8289: LD_INT 16
8291: PPUSH
8292: LD_INT 10
8294: PPUSH
8295: LD_EXP 66
8299: PPUSH
8300: CALL 10281 0 4
// HealUnitInBase ( randomedColors [ 3 ] , Russian2HealArea , RussianBase2 , Ru2Lab ) ;
8304: LD_EXP 51
8308: PUSH
8309: LD_INT 3
8311: ARRAY
8312: PPUSH
8313: LD_INT 17
8315: PPUSH
8316: LD_INT 11
8318: PPUSH
8319: LD_EXP 70
8323: PPUSH
8324: CALL 10281 0 4
// RepairBuilding ( randomedColors [ 2 ] , Ru1Depot ) ;
8328: LD_EXP 51
8332: PUSH
8333: LD_INT 2
8335: ARRAY
8336: PPUSH
8337: LD_EXP 64
8341: PPUSH
8342: CALL 10026 0 2
// RepairBuilding ( randomedColors [ 3 ] , Ru2Depot ) ;
8346: LD_EXP 51
8350: PUSH
8351: LD_INT 3
8353: ARRAY
8354: PPUSH
8355: LD_EXP 68
8359: PPUSH
8360: CALL 10026 0 2
// ReBuildBuildings ( randomedColors [ 2 ] ) ;
8364: LD_EXP 51
8368: PUSH
8369: LD_INT 2
8371: ARRAY
8372: PPUSH
8373: CALL 14058 0 1
// ReBuildBuildings ( randomedColors [ 3 ] ) ;
8377: LD_EXP 51
8381: PUSH
8382: LD_INT 3
8384: ARRAY
8385: PPUSH
8386: CALL 14058 0 1
// if GetLives ( Ru1Depot ) < 252 then
8390: LD_EXP 64
8394: PPUSH
8395: CALL_OW 256
8399: PUSH
8400: LD_INT 252
8402: LESS
8403: IFFALSE 8418
// begin EscapeFromBunkers ( randomedColors [ 2 ] ) ;
8405: LD_EXP 51
8409: PUSH
8410: LD_INT 2
8412: ARRAY
8413: PPUSH
8414: CALL 14248 0 1
// end ; if GetLives ( Ru2Depot ) < 252 then
8418: LD_EXP 68
8422: PPUSH
8423: CALL_OW 256
8427: PUSH
8428: LD_INT 252
8430: LESS
8431: IFFALSE 8446
// begin EscapeFromBunkers ( randomedColors [ 3 ] ) ;
8433: LD_EXP 51
8437: PUSH
8438: LD_INT 3
8440: ARRAY
8441: PPUSH
8442: CALL 14248 0 1
// end ; enable ;
8446: ENABLE
// end ;
8447: END
// every 2 2$0 trigger ai_american1 = 1 and ai_american2 = 1 do var target , i ;
8448: LD_EXP 20
8452: PUSH
8453: LD_INT 1
8455: EQUAL
8456: PUSH
8457: LD_EXP 21
8461: PUSH
8462: LD_INT 1
8464: EQUAL
8465: AND
8466: IFFALSE 9234
8468: GO 8470
8470: DISABLE
8471: LD_INT 0
8473: PPUSH
8474: PPUSH
// begin if FilterAllUnits ( [ [ f_side , randomedColors [ 2 ] ] , [ f_type , unit_vehicle ] , [ f_control , 2 ] ] ) = 0 then
8475: LD_INT 22
8477: PUSH
8478: LD_EXP 51
8482: PUSH
8483: LD_INT 2
8485: ARRAY
8486: PUSH
8487: EMPTY
8488: LIST
8489: LIST
8490: PUSH
8491: LD_INT 21
8493: PUSH
8494: LD_INT 2
8496: PUSH
8497: EMPTY
8498: LIST
8499: LIST
8500: PUSH
8501: LD_INT 33
8503: PUSH
8504: LD_INT 2
8506: PUSH
8507: EMPTY
8508: LIST
8509: LIST
8510: PUSH
8511: EMPTY
8512: LIST
8513: LIST
8514: LIST
8515: PPUSH
8516: CALL_OW 69
8520: PUSH
8521: LD_INT 0
8523: EQUAL
8524: IFFALSE 8652
// begin AddComConstruct ( Am1Fab , 4 , 1 , 2 , 6 ) ;
8526: LD_EXP 55
8530: PPUSH
8531: LD_INT 4
8533: PPUSH
8534: LD_INT 1
8536: PPUSH
8537: LD_INT 2
8539: PPUSH
8540: LD_INT 6
8542: PPUSH
8543: CALL_OW 185
// AddComConstruct ( Am1Fab , 4 , 1 , 2 , 6 ) ;
8547: LD_EXP 55
8551: PPUSH
8552: LD_INT 4
8554: PPUSH
8555: LD_INT 1
8557: PPUSH
8558: LD_INT 2
8560: PPUSH
8561: LD_INT 6
8563: PPUSH
8564: CALL_OW 185
// AddComConstruct ( Am1Fab , 3 , 1 , 2 , 5 ) ;
8568: LD_EXP 55
8572: PPUSH
8573: LD_INT 3
8575: PPUSH
8576: LD_INT 1
8578: PPUSH
8579: LD_INT 2
8581: PPUSH
8582: LD_INT 5
8584: PPUSH
8585: CALL_OW 185
// AddComConstruct ( Am1Fab , 3 , 1 , 2 , 5 ) ;
8589: LD_EXP 55
8593: PPUSH
8594: LD_INT 3
8596: PPUSH
8597: LD_INT 1
8599: PPUSH
8600: LD_INT 2
8602: PPUSH
8603: LD_INT 5
8605: PPUSH
8606: CALL_OW 185
// AddComConstruct ( Am1Fab , 3 , 1 , 2 , 5 ) ;
8610: LD_EXP 55
8614: PPUSH
8615: LD_INT 3
8617: PPUSH
8618: LD_INT 1
8620: PPUSH
8621: LD_INT 2
8623: PPUSH
8624: LD_INT 5
8626: PPUSH
8627: CALL_OW 185
// AddComConstruct ( Am1Fab , 3 , 1 , 2 , 5 ) ;
8631: LD_EXP 55
8635: PPUSH
8636: LD_INT 3
8638: PPUSH
8639: LD_INT 1
8641: PPUSH
8642: LD_INT 2
8644: PPUSH
8645: LD_INT 5
8647: PPUSH
8648: CALL_OW 185
// end ; if FilterAllUnits ( [ [ f_side , randomedColors [ 3 ] ] , [ f_type , unit_vehicle ] , [ f_control , 2 ] ] ) = 0 then
8652: LD_INT 22
8654: PUSH
8655: LD_EXP 51
8659: PUSH
8660: LD_INT 3
8662: ARRAY
8663: PUSH
8664: EMPTY
8665: LIST
8666: LIST
8667: PUSH
8668: LD_INT 21
8670: PUSH
8671: LD_INT 2
8673: PUSH
8674: EMPTY
8675: LIST
8676: LIST
8677: PUSH
8678: LD_INT 33
8680: PUSH
8681: LD_INT 2
8683: PUSH
8684: EMPTY
8685: LIST
8686: LIST
8687: PUSH
8688: EMPTY
8689: LIST
8690: LIST
8691: LIST
8692: PPUSH
8693: CALL_OW 69
8697: PUSH
8698: LD_INT 0
8700: EQUAL
8701: IFFALSE 8829
// begin AddComConstruct ( Am2Fab , 4 , 1 , 2 , 6 ) ;
8703: LD_EXP 60
8707: PPUSH
8708: LD_INT 4
8710: PPUSH
8711: LD_INT 1
8713: PPUSH
8714: LD_INT 2
8716: PPUSH
8717: LD_INT 6
8719: PPUSH
8720: CALL_OW 185
// AddComConstruct ( Am2Fab , 4 , 1 , 2 , 6 ) ;
8724: LD_EXP 60
8728: PPUSH
8729: LD_INT 4
8731: PPUSH
8732: LD_INT 1
8734: PPUSH
8735: LD_INT 2
8737: PPUSH
8738: LD_INT 6
8740: PPUSH
8741: CALL_OW 185
// AddComConstruct ( Am2Fab , 3 , 1 , 2 , 5 ) ;
8745: LD_EXP 60
8749: PPUSH
8750: LD_INT 3
8752: PPUSH
8753: LD_INT 1
8755: PPUSH
8756: LD_INT 2
8758: PPUSH
8759: LD_INT 5
8761: PPUSH
8762: CALL_OW 185
// AddComConstruct ( Am2Fab , 3 , 1 , 2 , 5 ) ;
8766: LD_EXP 60
8770: PPUSH
8771: LD_INT 3
8773: PPUSH
8774: LD_INT 1
8776: PPUSH
8777: LD_INT 2
8779: PPUSH
8780: LD_INT 5
8782: PPUSH
8783: CALL_OW 185
// AddComConstruct ( Am2Fab , 3 , 1 , 2 , 5 ) ;
8787: LD_EXP 60
8791: PPUSH
8792: LD_INT 3
8794: PPUSH
8795: LD_INT 1
8797: PPUSH
8798: LD_INT 2
8800: PPUSH
8801: LD_INT 5
8803: PPUSH
8804: CALL_OW 185
// AddComConstruct ( Am2Fab , 3 , 1 , 2 , 5 ) ;
8808: LD_EXP 60
8812: PPUSH
8813: LD_INT 3
8815: PPUSH
8816: LD_INT 1
8818: PPUSH
8819: LD_INT 2
8821: PPUSH
8822: LD_INT 5
8824: PPUSH
8825: CALL_OW 185
// end ; if FilterAllUnits ( [ [ f_side , randomedColors [ 2 ] ] , [ f_type , unit_vehicle ] , [ f_control , 2 ] ] ) >= 6 then
8829: LD_INT 22
8831: PUSH
8832: LD_EXP 51
8836: PUSH
8837: LD_INT 2
8839: ARRAY
8840: PUSH
8841: EMPTY
8842: LIST
8843: LIST
8844: PUSH
8845: LD_INT 21
8847: PUSH
8848: LD_INT 2
8850: PUSH
8851: EMPTY
8852: LIST
8853: LIST
8854: PUSH
8855: LD_INT 33
8857: PUSH
8858: LD_INT 2
8860: PUSH
8861: EMPTY
8862: LIST
8863: LIST
8864: PUSH
8865: EMPTY
8866: LIST
8867: LIST
8868: LIST
8869: PPUSH
8870: CALL_OW 69
8874: PUSH
8875: LD_INT 6
8877: GREATEREQUAL
8878: IFFALSE 9031
// begin repeat begin wait ( 0 0$3 ) ;
8880: LD_INT 105
8882: PPUSH
8883: CALL_OW 67
// for i in FilterAllUnits ( [ [ f_side , randomedColors [ 2 ] ] , [ f_type , unit_vehicle ] ] ) do
8887: LD_ADDR_VAR 0 2
8891: PUSH
8892: LD_INT 22
8894: PUSH
8895: LD_EXP 51
8899: PUSH
8900: LD_INT 2
8902: ARRAY
8903: PUSH
8904: EMPTY
8905: LIST
8906: LIST
8907: PUSH
8908: LD_INT 21
8910: PUSH
8911: LD_INT 2
8913: PUSH
8914: EMPTY
8915: LIST
8916: LIST
8917: PUSH
8918: EMPTY
8919: LIST
8920: LIST
8921: PPUSH
8922: CALL_OW 69
8926: PUSH
8927: FOR_IN
8928: IFFALSE 8978
// begin target := NearestUnitToUnit ( FilterAllUnits ( [ f_side , sideP1 ] ) , i ) ;
8930: LD_ADDR_VAR 0 1
8934: PUSH
8935: LD_INT 22
8937: PUSH
8938: LD_EXP 52
8942: PUSH
8943: EMPTY
8944: LIST
8945: LIST
8946: PPUSH
8947: CALL_OW 69
8951: PPUSH
8952: LD_VAR 0 2
8956: PPUSH
8957: CALL_OW 74
8961: ST_TO_ADDR
// ComAttackUnit ( i , target ) ;
8962: LD_VAR 0 2
8966: PPUSH
8967: LD_VAR 0 1
8971: PPUSH
8972: CALL_OW 115
// end ;
8976: GO 8927
8978: POP
8979: POP
// end until FilterAllUnits ( [ [ f_side , randomedColors [ 2 ] ] , [ f_type , unit_vehicle ] , [ f_control , 2 ] ] ) = 0 ;
8980: LD_INT 22
8982: PUSH
8983: LD_EXP 51
8987: PUSH
8988: LD_INT 2
8990: ARRAY
8991: PUSH
8992: EMPTY
8993: LIST
8994: LIST
8995: PUSH
8996: LD_INT 21
8998: PUSH
8999: LD_INT 2
9001: PUSH
9002: EMPTY
9003: LIST
9004: LIST
9005: PUSH
9006: LD_INT 33
9008: PUSH
9009: LD_INT 2
9011: PUSH
9012: EMPTY
9013: LIST
9014: LIST
9015: PUSH
9016: EMPTY
9017: LIST
9018: LIST
9019: LIST
9020: PPUSH
9021: CALL_OW 69
9025: PUSH
9026: LD_INT 0
9028: EQUAL
9029: IFFALSE 8880
// end ; if FilterAllUnits ( [ [ f_side , randomedColors [ 3 ] ] , [ f_type , unit_vehicle ] , [ f_control , 2 ] ] ) >= 6 then
9031: LD_INT 22
9033: PUSH
9034: LD_EXP 51
9038: PUSH
9039: LD_INT 3
9041: ARRAY
9042: PUSH
9043: EMPTY
9044: LIST
9045: LIST
9046: PUSH
9047: LD_INT 21
9049: PUSH
9050: LD_INT 2
9052: PUSH
9053: EMPTY
9054: LIST
9055: LIST
9056: PUSH
9057: LD_INT 33
9059: PUSH
9060: LD_INT 2
9062: PUSH
9063: EMPTY
9064: LIST
9065: LIST
9066: PUSH
9067: EMPTY
9068: LIST
9069: LIST
9070: LIST
9071: PPUSH
9072: CALL_OW 69
9076: PUSH
9077: LD_INT 6
9079: GREATEREQUAL
9080: IFFALSE 9233
// begin repeat begin wait ( 0 0$3 ) ;
9082: LD_INT 105
9084: PPUSH
9085: CALL_OW 67
// for i in FilterAllUnits ( [ [ f_side , randomedColors [ 3 ] ] , [ f_type , unit_vehicle ] ] ) do
9089: LD_ADDR_VAR 0 2
9093: PUSH
9094: LD_INT 22
9096: PUSH
9097: LD_EXP 51
9101: PUSH
9102: LD_INT 3
9104: ARRAY
9105: PUSH
9106: EMPTY
9107: LIST
9108: LIST
9109: PUSH
9110: LD_INT 21
9112: PUSH
9113: LD_INT 2
9115: PUSH
9116: EMPTY
9117: LIST
9118: LIST
9119: PUSH
9120: EMPTY
9121: LIST
9122: LIST
9123: PPUSH
9124: CALL_OW 69
9128: PUSH
9129: FOR_IN
9130: IFFALSE 9180
// begin target := NearestUnitToUnit ( FilterAllUnits ( [ f_side , sideP2 ] ) , i ) ;
9132: LD_ADDR_VAR 0 1
9136: PUSH
9137: LD_INT 22
9139: PUSH
9140: LD_EXP 53
9144: PUSH
9145: EMPTY
9146: LIST
9147: LIST
9148: PPUSH
9149: CALL_OW 69
9153: PPUSH
9154: LD_VAR 0 2
9158: PPUSH
9159: CALL_OW 74
9163: ST_TO_ADDR
// ComAttackUnit ( i , target ) ;
9164: LD_VAR 0 2
9168: PPUSH
9169: LD_VAR 0 1
9173: PPUSH
9174: CALL_OW 115
// end ;
9178: GO 9129
9180: POP
9181: POP
// end until FilterAllUnits ( [ [ f_side , randomedColors [ 3 ] ] , [ f_type , unit_vehicle ] , [ f_control , 2 ] ] ) = 0 ;
9182: LD_INT 22
9184: PUSH
9185: LD_EXP 51
9189: PUSH
9190: LD_INT 3
9192: ARRAY
9193: PUSH
9194: EMPTY
9195: LIST
9196: LIST
9197: PUSH
9198: LD_INT 21
9200: PUSH
9201: LD_INT 2
9203: PUSH
9204: EMPTY
9205: LIST
9206: LIST
9207: PUSH
9208: LD_INT 33
9210: PUSH
9211: LD_INT 2
9213: PUSH
9214: EMPTY
9215: LIST
9216: LIST
9217: PUSH
9218: EMPTY
9219: LIST
9220: LIST
9221: LIST
9222: PPUSH
9223: CALL_OW 69
9227: PUSH
9228: LD_INT 0
9230: EQUAL
9231: IFFALSE 9082
// end ; enable ;
9233: ENABLE
// end ;
9234: PPOPN 2
9236: END
// every 2 2$1 trigger ai_russian1 = 1 and ai_russian2 = 1 do var target , i ;
9237: LD_EXP 22
9241: PUSH
9242: LD_INT 1
9244: EQUAL
9245: PUSH
9246: LD_EXP 23
9250: PUSH
9251: LD_INT 1
9253: EQUAL
9254: AND
9255: IFFALSE 10023
9257: GO 9259
9259: DISABLE
9260: LD_INT 0
9262: PPUSH
9263: PPUSH
// begin if FilterAllUnits ( [ [ f_side , randomedColors [ 2 ] ] , [ f_type , unit_vehicle ] , [ f_control , 3 ] ] ) = 0 then
9264: LD_INT 22
9266: PUSH
9267: LD_EXP 51
9271: PUSH
9272: LD_INT 2
9274: ARRAY
9275: PUSH
9276: EMPTY
9277: LIST
9278: LIST
9279: PUSH
9280: LD_INT 21
9282: PUSH
9283: LD_INT 2
9285: PUSH
9286: EMPTY
9287: LIST
9288: LIST
9289: PUSH
9290: LD_INT 33
9292: PUSH
9293: LD_INT 3
9295: PUSH
9296: EMPTY
9297: LIST
9298: LIST
9299: PUSH
9300: EMPTY
9301: LIST
9302: LIST
9303: LIST
9304: PPUSH
9305: CALL_OW 69
9309: PUSH
9310: LD_INT 0
9312: EQUAL
9313: IFFALSE 9441
// begin AddComConstruct ( Ru1Fab , 24 , 1 , 3 , 46 ) ;
9315: LD_EXP 65
9319: PPUSH
9320: LD_INT 24
9322: PPUSH
9323: LD_INT 1
9325: PPUSH
9326: LD_INT 3
9328: PPUSH
9329: LD_INT 46
9331: PPUSH
9332: CALL_OW 185
// AddComConstruct ( Ru1Fab , 24 , 1 , 3 , 46 ) ;
9336: LD_EXP 65
9340: PPUSH
9341: LD_INT 24
9343: PPUSH
9344: LD_INT 1
9346: PPUSH
9347: LD_INT 3
9349: PPUSH
9350: LD_INT 46
9352: PPUSH
9353: CALL_OW 185
// AddComConstruct ( Ru1Fab , 24 , 1 , 3 , 46 ) ;
9357: LD_EXP 65
9361: PPUSH
9362: LD_INT 24
9364: PPUSH
9365: LD_INT 1
9367: PPUSH
9368: LD_INT 3
9370: PPUSH
9371: LD_INT 46
9373: PPUSH
9374: CALL_OW 185
// AddComConstruct ( Ru1Fab , 22 , 1 , 3 , 44 ) ;
9378: LD_EXP 65
9382: PPUSH
9383: LD_INT 22
9385: PPUSH
9386: LD_INT 1
9388: PPUSH
9389: LD_INT 3
9391: PPUSH
9392: LD_INT 44
9394: PPUSH
9395: CALL_OW 185
// AddComConstruct ( Ru1Fab , 22 , 1 , 3 , 44 ) ;
9399: LD_EXP 65
9403: PPUSH
9404: LD_INT 22
9406: PPUSH
9407: LD_INT 1
9409: PPUSH
9410: LD_INT 3
9412: PPUSH
9413: LD_INT 44
9415: PPUSH
9416: CALL_OW 185
// AddComConstruct ( Ru1Fab , 22 , 1 , 3 , 44 ) ;
9420: LD_EXP 65
9424: PPUSH
9425: LD_INT 22
9427: PPUSH
9428: LD_INT 1
9430: PPUSH
9431: LD_INT 3
9433: PPUSH
9434: LD_INT 44
9436: PPUSH
9437: CALL_OW 185
// end ; if FilterAllUnits ( [ [ f_side , randomedColors [ 3 ] ] , [ f_type , unit_vehicle ] , [ f_control , 3 ] ] ) = 0 then
9441: LD_INT 22
9443: PUSH
9444: LD_EXP 51
9448: PUSH
9449: LD_INT 3
9451: ARRAY
9452: PUSH
9453: EMPTY
9454: LIST
9455: LIST
9456: PUSH
9457: LD_INT 21
9459: PUSH
9460: LD_INT 2
9462: PUSH
9463: EMPTY
9464: LIST
9465: LIST
9466: PUSH
9467: LD_INT 33
9469: PUSH
9470: LD_INT 3
9472: PUSH
9473: EMPTY
9474: LIST
9475: LIST
9476: PUSH
9477: EMPTY
9478: LIST
9479: LIST
9480: LIST
9481: PPUSH
9482: CALL_OW 69
9486: PUSH
9487: LD_INT 0
9489: EQUAL
9490: IFFALSE 9618
// begin AddComConstruct ( Ru2Fab , 24 , 1 , 3 , 46 ) ;
9492: LD_EXP 69
9496: PPUSH
9497: LD_INT 24
9499: PPUSH
9500: LD_INT 1
9502: PPUSH
9503: LD_INT 3
9505: PPUSH
9506: LD_INT 46
9508: PPUSH
9509: CALL_OW 185
// AddComConstruct ( Ru2Fab , 24 , 1 , 3 , 46 ) ;
9513: LD_EXP 69
9517: PPUSH
9518: LD_INT 24
9520: PPUSH
9521: LD_INT 1
9523: PPUSH
9524: LD_INT 3
9526: PPUSH
9527: LD_INT 46
9529: PPUSH
9530: CALL_OW 185
// AddComConstruct ( Ru2Fab , 24 , 1 , 3 , 46 ) ;
9534: LD_EXP 69
9538: PPUSH
9539: LD_INT 24
9541: PPUSH
9542: LD_INT 1
9544: PPUSH
9545: LD_INT 3
9547: PPUSH
9548: LD_INT 46
9550: PPUSH
9551: CALL_OW 185
// AddComConstruct ( Ru2Fab , 22 , 1 , 3 , 44 ) ;
9555: LD_EXP 69
9559: PPUSH
9560: LD_INT 22
9562: PPUSH
9563: LD_INT 1
9565: PPUSH
9566: LD_INT 3
9568: PPUSH
9569: LD_INT 44
9571: PPUSH
9572: CALL_OW 185
// AddComConstruct ( Ru2Fab , 22 , 1 , 3 , 44 ) ;
9576: LD_EXP 69
9580: PPUSH
9581: LD_INT 22
9583: PPUSH
9584: LD_INT 1
9586: PPUSH
9587: LD_INT 3
9589: PPUSH
9590: LD_INT 44
9592: PPUSH
9593: CALL_OW 185
// AddComConstruct ( Ru2Fab , 22 , 1 , 3 , 44 ) ;
9597: LD_EXP 69
9601: PPUSH
9602: LD_INT 22
9604: PPUSH
9605: LD_INT 1
9607: PPUSH
9608: LD_INT 3
9610: PPUSH
9611: LD_INT 44
9613: PPUSH
9614: CALL_OW 185
// end ; if FilterAllUnits ( [ [ f_side , randomedColors [ 2 ] ] , [ f_type , unit_vehicle ] , [ f_control , 3 ] ] ) >= 6 then
9618: LD_INT 22
9620: PUSH
9621: LD_EXP 51
9625: PUSH
9626: LD_INT 2
9628: ARRAY
9629: PUSH
9630: EMPTY
9631: LIST
9632: LIST
9633: PUSH
9634: LD_INT 21
9636: PUSH
9637: LD_INT 2
9639: PUSH
9640: EMPTY
9641: LIST
9642: LIST
9643: PUSH
9644: LD_INT 33
9646: PUSH
9647: LD_INT 3
9649: PUSH
9650: EMPTY
9651: LIST
9652: LIST
9653: PUSH
9654: EMPTY
9655: LIST
9656: LIST
9657: LIST
9658: PPUSH
9659: CALL_OW 69
9663: PUSH
9664: LD_INT 6
9666: GREATEREQUAL
9667: IFFALSE 9820
// begin repeat begin wait ( 0 0$3 ) ;
9669: LD_INT 105
9671: PPUSH
9672: CALL_OW 67
// for i in FilterAllUnits ( [ [ f_side , randomedColors [ 2 ] ] , [ f_type , unit_vehicle ] ] ) do
9676: LD_ADDR_VAR 0 2
9680: PUSH
9681: LD_INT 22
9683: PUSH
9684: LD_EXP 51
9688: PUSH
9689: LD_INT 2
9691: ARRAY
9692: PUSH
9693: EMPTY
9694: LIST
9695: LIST
9696: PUSH
9697: LD_INT 21
9699: PUSH
9700: LD_INT 2
9702: PUSH
9703: EMPTY
9704: LIST
9705: LIST
9706: PUSH
9707: EMPTY
9708: LIST
9709: LIST
9710: PPUSH
9711: CALL_OW 69
9715: PUSH
9716: FOR_IN
9717: IFFALSE 9767
// begin target := NearestUnitToUnit ( FilterAllUnits ( [ f_side , sideP1 ] ) , i ) ;
9719: LD_ADDR_VAR 0 1
9723: PUSH
9724: LD_INT 22
9726: PUSH
9727: LD_EXP 52
9731: PUSH
9732: EMPTY
9733: LIST
9734: LIST
9735: PPUSH
9736: CALL_OW 69
9740: PPUSH
9741: LD_VAR 0 2
9745: PPUSH
9746: CALL_OW 74
9750: ST_TO_ADDR
// ComAttackUnit ( i , target ) ;
9751: LD_VAR 0 2
9755: PPUSH
9756: LD_VAR 0 1
9760: PPUSH
9761: CALL_OW 115
// end ;
9765: GO 9716
9767: POP
9768: POP
// end until FilterAllUnits ( [ [ f_side , randomedColors [ 2 ] ] , [ f_type , unit_vehicle ] , [ f_control , 2 ] ] ) = 0 ;
9769: LD_INT 22
9771: PUSH
9772: LD_EXP 51
9776: PUSH
9777: LD_INT 2
9779: ARRAY
9780: PUSH
9781: EMPTY
9782: LIST
9783: LIST
9784: PUSH
9785: LD_INT 21
9787: PUSH
9788: LD_INT 2
9790: PUSH
9791: EMPTY
9792: LIST
9793: LIST
9794: PUSH
9795: LD_INT 33
9797: PUSH
9798: LD_INT 2
9800: PUSH
9801: EMPTY
9802: LIST
9803: LIST
9804: PUSH
9805: EMPTY
9806: LIST
9807: LIST
9808: LIST
9809: PPUSH
9810: CALL_OW 69
9814: PUSH
9815: LD_INT 0
9817: EQUAL
9818: IFFALSE 9669
// end ; if FilterAllUnits ( [ [ f_side , randomedColors [ 3 ] ] , [ f_type , unit_vehicle ] , [ f_control , 2 ] ] ) >= 6 then
9820: LD_INT 22
9822: PUSH
9823: LD_EXP 51
9827: PUSH
9828: LD_INT 3
9830: ARRAY
9831: PUSH
9832: EMPTY
9833: LIST
9834: LIST
9835: PUSH
9836: LD_INT 21
9838: PUSH
9839: LD_INT 2
9841: PUSH
9842: EMPTY
9843: LIST
9844: LIST
9845: PUSH
9846: LD_INT 33
9848: PUSH
9849: LD_INT 2
9851: PUSH
9852: EMPTY
9853: LIST
9854: LIST
9855: PUSH
9856: EMPTY
9857: LIST
9858: LIST
9859: LIST
9860: PPUSH
9861: CALL_OW 69
9865: PUSH
9866: LD_INT 6
9868: GREATEREQUAL
9869: IFFALSE 10022
// begin repeat begin wait ( 0 0$3 ) ;
9871: LD_INT 105
9873: PPUSH
9874: CALL_OW 67
// for i in FilterAllUnits ( [ [ f_side , randomedColors [ 3 ] ] , [ f_type , unit_vehicle ] ] ) do
9878: LD_ADDR_VAR 0 2
9882: PUSH
9883: LD_INT 22
9885: PUSH
9886: LD_EXP 51
9890: PUSH
9891: LD_INT 3
9893: ARRAY
9894: PUSH
9895: EMPTY
9896: LIST
9897: LIST
9898: PUSH
9899: LD_INT 21
9901: PUSH
9902: LD_INT 2
9904: PUSH
9905: EMPTY
9906: LIST
9907: LIST
9908: PUSH
9909: EMPTY
9910: LIST
9911: LIST
9912: PPUSH
9913: CALL_OW 69
9917: PUSH
9918: FOR_IN
9919: IFFALSE 9969
// begin target := NearestUnitToUnit ( FilterAllUnits ( [ f_side , sideP2 ] ) , i ) ;
9921: LD_ADDR_VAR 0 1
9925: PUSH
9926: LD_INT 22
9928: PUSH
9929: LD_EXP 53
9933: PUSH
9934: EMPTY
9935: LIST
9936: LIST
9937: PPUSH
9938: CALL_OW 69
9942: PPUSH
9943: LD_VAR 0 2
9947: PPUSH
9948: CALL_OW 74
9952: ST_TO_ADDR
// ComAttackUnit ( i , target ) ;
9953: LD_VAR 0 2
9957: PPUSH
9958: LD_VAR 0 1
9962: PPUSH
9963: CALL_OW 115
// end ;
9967: GO 9918
9969: POP
9970: POP
// end until FilterAllUnits ( [ [ f_side , randomedColors [ 3 ] ] , [ f_type , unit_vehicle ] , [ f_control , 2 ] ] ) = 0 ;
9971: LD_INT 22
9973: PUSH
9974: LD_EXP 51
9978: PUSH
9979: LD_INT 3
9981: ARRAY
9982: PUSH
9983: EMPTY
9984: LIST
9985: LIST
9986: PUSH
9987: LD_INT 21
9989: PUSH
9990: LD_INT 2
9992: PUSH
9993: EMPTY
9994: LIST
9995: LIST
9996: PUSH
9997: LD_INT 33
9999: PUSH
10000: LD_INT 2
10002: PUSH
10003: EMPTY
10004: LIST
10005: LIST
10006: PUSH
10007: EMPTY
10008: LIST
10009: LIST
10010: LIST
10011: PPUSH
10012: CALL_OW 69
10016: PUSH
10017: LD_INT 0
10019: EQUAL
10020: IFFALSE 9871
// end ; enable ;
10022: ENABLE
// end ;
10023: PPOPN 2
10025: END
// export function RepairBuilding ( side , build ) ; var buildings_list , i , j , engineerOK_list ; begin
10026: LD_INT 0
10028: PPUSH
10029: PPUSH
10030: PPUSH
10031: PPUSH
10032: PPUSH
// engineerOk_list = FilterAllUnits ( [ [ f_side , side ] , [ f_class , 2 ] , [ f_lives , 1000 ] ] ) ;
10033: LD_ADDR_VAR 0 7
10037: PUSH
10038: LD_INT 22
10040: PUSH
10041: LD_VAR 0 1
10045: PUSH
10046: EMPTY
10047: LIST
10048: LIST
10049: PUSH
10050: LD_INT 25
10052: PUSH
10053: LD_INT 2
10055: PUSH
10056: EMPTY
10057: LIST
10058: LIST
10059: PUSH
10060: LD_INT 24
10062: PUSH
10063: LD_INT 1000
10065: PUSH
10066: EMPTY
10067: LIST
10068: LIST
10069: PUSH
10070: EMPTY
10071: LIST
10072: LIST
10073: LIST
10074: PPUSH
10075: CALL_OW 69
10079: ST_TO_ADDR
// buildings_list = FilterAllUnits ( [ [ [ f_side , side ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ] ) ;
10080: LD_ADDR_VAR 0 4
10084: PUSH
10085: LD_INT 22
10087: PUSH
10088: LD_VAR 0 1
10092: PUSH
10093: EMPTY
10094: LIST
10095: LIST
10096: PUSH
10097: LD_INT 21
10099: PUSH
10100: LD_INT 3
10102: PUSH
10103: EMPTY
10104: LIST
10105: LIST
10106: PUSH
10107: LD_INT 3
10109: PUSH
10110: LD_INT 24
10112: PUSH
10113: LD_INT 1000
10115: PUSH
10116: EMPTY
10117: LIST
10118: LIST
10119: PUSH
10120: EMPTY
10121: LIST
10122: LIST
10123: PUSH
10124: EMPTY
10125: LIST
10126: LIST
10127: LIST
10128: PUSH
10129: EMPTY
10130: LIST
10131: PPUSH
10132: CALL_OW 69
10136: ST_TO_ADDR
// if buildings_list > 0 and engineerOK_list > 0 then
10137: LD_VAR 0 4
10141: PUSH
10142: LD_INT 0
10144: GREATER
10145: PUSH
10146: LD_VAR 0 7
10150: PUSH
10151: LD_INT 0
10153: GREATER
10154: AND
10155: IFFALSE 10276
// begin for j = 1 to buildings_list do
10157: LD_ADDR_VAR 0 6
10161: PUSH
10162: DOUBLE
10163: LD_INT 1
10165: DEC
10166: ST_TO_ADDR
10167: LD_VAR 0 4
10171: PUSH
10172: FOR_TO
10173: IFFALSE 10274
// begin wait ( 0 0$1 ) ;
10175: LD_INT 35
10177: PPUSH
10178: CALL_OW 67
// for i = 1 to engineerOk_list do
10182: LD_ADDR_VAR 0 5
10186: PUSH
10187: DOUBLE
10188: LD_INT 1
10190: DEC
10191: ST_TO_ADDR
10192: LD_VAR 0 7
10196: PUSH
10197: FOR_TO
10198: IFFALSE 10270
// begin wait ( 0 0$1 ) ;
10200: LD_INT 35
10202: PPUSH
10203: CALL_OW 67
// ComExitBuilding ( engineerOK_list [ i ] ) ;
10207: LD_VAR 0 7
10211: PUSH
10212: LD_VAR 0 5
10216: ARRAY
10217: PPUSH
10218: CALL_OW 122
// AddComRepairBuilding ( engineerOk_list [ i ] , buildings_list [ j ] ) ;
10222: LD_VAR 0 7
10226: PUSH
10227: LD_VAR 0 5
10231: ARRAY
10232: PPUSH
10233: LD_VAR 0 4
10237: PUSH
10238: LD_VAR 0 6
10242: ARRAY
10243: PPUSH
10244: CALL_OW 190
// AddComEnterUnit ( engineerOK_list [ i ] , build ) ;
10248: LD_VAR 0 7
10252: PUSH
10253: LD_VAR 0 5
10257: ARRAY
10258: PPUSH
10259: LD_VAR 0 2
10263: PPUSH
10264: CALL_OW 180
// end ;
10268: GO 10197
10270: POP
10271: POP
// end ;
10272: GO 10172
10274: POP
10275: POP
// end ; end ;
10276: LD_VAR 0 3
10280: RET
// export function HealUnitInBase ( side , healArea , baseArea , build ) ; var sci_list , i , j , damageUnits ; begin
10281: LD_INT 0
10283: PPUSH
10284: PPUSH
10285: PPUSH
10286: PPUSH
10287: PPUSH
// sci_list = FilterAllUnits ( [ [ f_side , side ] , [ f_class , 4 ] ] ) ;
10288: LD_ADDR_VAR 0 6
10292: PUSH
10293: LD_INT 22
10295: PUSH
10296: LD_VAR 0 1
10300: PUSH
10301: EMPTY
10302: LIST
10303: LIST
10304: PUSH
10305: LD_INT 25
10307: PUSH
10308: LD_INT 4
10310: PUSH
10311: EMPTY
10312: LIST
10313: LIST
10314: PUSH
10315: EMPTY
10316: LIST
10317: LIST
10318: PPUSH
10319: CALL_OW 69
10323: ST_TO_ADDR
// damageUnits = FilterUnitsInArea ( baseArea , [ [ f_side , side ] , [ f_type , unit_human ] , [ f_not , [ f_lives , 750 ] ] ] ) ;
10324: LD_ADDR_VAR 0 9
10328: PUSH
10329: LD_VAR 0 3
10333: PPUSH
10334: LD_INT 22
10336: PUSH
10337: LD_VAR 0 1
10341: PUSH
10342: EMPTY
10343: LIST
10344: LIST
10345: PUSH
10346: LD_INT 21
10348: PUSH
10349: LD_INT 1
10351: PUSH
10352: EMPTY
10353: LIST
10354: LIST
10355: PUSH
10356: LD_INT 3
10358: PUSH
10359: LD_INT 24
10361: PUSH
10362: LD_INT 750
10364: PUSH
10365: EMPTY
10366: LIST
10367: LIST
10368: PUSH
10369: EMPTY
10370: LIST
10371: LIST
10372: PUSH
10373: EMPTY
10374: LIST
10375: LIST
10376: LIST
10377: PPUSH
10378: CALL_OW 70
10382: ST_TO_ADDR
// if damageUnits > 0 and sci_list > 0 then
10383: LD_VAR 0 9
10387: PUSH
10388: LD_INT 0
10390: GREATER
10391: PUSH
10392: LD_VAR 0 6
10396: PUSH
10397: LD_INT 0
10399: GREATER
10400: AND
10401: IFFALSE 10558
// begin for i = 1 to damageUnits do
10403: LD_ADDR_VAR 0 7
10407: PUSH
10408: DOUBLE
10409: LD_INT 1
10411: DEC
10412: ST_TO_ADDR
10413: LD_VAR 0 9
10417: PUSH
10418: FOR_TO
10419: IFFALSE 10450
// begin wait ( 0 0$1 ) ;
10421: LD_INT 35
10423: PPUSH
10424: CALL_OW 67
// ComMoveToArea ( damageUnits [ i ] , healArea ) ;
10428: LD_VAR 0 9
10432: PUSH
10433: LD_VAR 0 7
10437: ARRAY
10438: PPUSH
10439: LD_VAR 0 2
10443: PPUSH
10444: CALL_OW 113
// end ;
10448: GO 10418
10450: POP
10451: POP
// for i = 1 to sci_list do
10452: LD_ADDR_VAR 0 7
10456: PUSH
10457: DOUBLE
10458: LD_INT 1
10460: DEC
10461: ST_TO_ADDR
10462: LD_VAR 0 6
10466: PUSH
10467: FOR_TO
10468: IFFALSE 10554
// begin ComExitBuilding ( sci_list [ i ] ) ;
10470: LD_VAR 0 6
10474: PUSH
10475: LD_VAR 0 7
10479: ARRAY
10480: PPUSH
10481: CALL_OW 122
// for j in FilterUnitsInArea ( healArea , [ f_side , side ] ) do
10485: LD_ADDR_VAR 0 8
10489: PUSH
10490: LD_VAR 0 2
10494: PPUSH
10495: LD_INT 22
10497: PUSH
10498: LD_VAR 0 1
10502: PUSH
10503: EMPTY
10504: LIST
10505: LIST
10506: PPUSH
10507: CALL_OW 70
10511: PUSH
10512: FOR_IN
10513: IFFALSE 10550
// begin wait ( 0 0$1 ) ;
10515: LD_INT 35
10517: PPUSH
10518: CALL_OW 67
// AddComHeal ( sci_list [ i ] , j [ j ] ) ;
10522: LD_VAR 0 6
10526: PUSH
10527: LD_VAR 0 7
10531: ARRAY
10532: PPUSH
10533: LD_VAR 0 8
10537: PUSH
10538: LD_VAR 0 8
10542: ARRAY
10543: PPUSH
10544: CALL_OW 188
// end ;
10548: GO 10512
10550: POP
10551: POP
// end ;
10552: GO 10467
10554: POP
10555: POP
// end else
10556: GO 10572
// begin AddComEnterUnit ( sci_list , build ) ;
10558: LD_VAR 0 6
10562: PPUSH
10563: LD_VAR 0 4
10567: PPUSH
10568: CALL_OW 180
// end ; end ;
10572: LD_VAR 0 5
10576: RET
// export function RespawnAttackInfantry ( side , nation , soldierCount , sniperCount , bazookCount , mortalCount , medicCount , skil , spawnArea , healArea , targetX , targetY ) ; var i , un , damageUnit_list , medic_list , soldiersOK_list , enemyUnits , und ; begin
10577: LD_INT 0
10579: PPUSH
10580: PPUSH
10581: PPUSH
10582: PPUSH
10583: PPUSH
10584: PPUSH
10585: PPUSH
10586: PPUSH
// for i = 1 to medicCount do
10587: LD_ADDR_VAR 0 14
10591: PUSH
10592: DOUBLE
10593: LD_INT 1
10595: DEC
10596: ST_TO_ADDR
10597: LD_VAR 0 7
10601: PUSH
10602: FOR_TO
10603: IFFALSE 10733
// begin uc_side = side ;
10605: LD_ADDR_OWVAR 20
10609: PUSH
10610: LD_VAR 0 1
10614: ST_TO_ADDR
// uc_nation = nation ;
10615: LD_ADDR_OWVAR 21
10619: PUSH
10620: LD_VAR 0 2
10624: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , skil ) , Rand ( 0 , skil ) , Rand ( 0 , skil ) , skil ] ;
10625: LD_ADDR_OWVAR 31
10629: PUSH
10630: LD_INT 0
10632: PPUSH
10633: LD_VAR 0 8
10637: PPUSH
10638: CALL_OW 12
10642: PUSH
10643: LD_INT 0
10645: PPUSH
10646: LD_VAR 0 8
10650: PPUSH
10651: CALL_OW 12
10655: PUSH
10656: LD_INT 0
10658: PPUSH
10659: LD_VAR 0 8
10663: PPUSH
10664: CALL_OW 12
10668: PUSH
10669: LD_VAR 0 8
10673: PUSH
10674: EMPTY
10675: LIST
10676: LIST
10677: LIST
10678: LIST
10679: ST_TO_ADDR
// hc_class = 4 ;
10680: LD_ADDR_OWVAR 28
10684: PUSH
10685: LD_INT 4
10687: ST_TO_ADDR
// hc_name =  ;
10688: LD_ADDR_OWVAR 26
10692: PUSH
10693: LD_STRING 
10695: ST_TO_ADDR
// hc_gallery =  ;
10696: LD_ADDR_OWVAR 33
10700: PUSH
10701: LD_STRING 
10703: ST_TO_ADDR
// un = CreateHuman ;
10704: LD_ADDR_VAR 0 15
10708: PUSH
10709: CALL_OW 44
10713: ST_TO_ADDR
// PlaceUnitArea ( un , spawnArea , false ) ;
10714: LD_VAR 0 15
10718: PPUSH
10719: LD_VAR 0 9
10723: PPUSH
10724: LD_INT 0
10726: PPUSH
10727: CALL_OW 49
// end ;
10731: GO 10602
10733: POP
10734: POP
// for i = 1 to soldierCount do
10735: LD_ADDR_VAR 0 14
10739: PUSH
10740: DOUBLE
10741: LD_INT 1
10743: DEC
10744: ST_TO_ADDR
10745: LD_VAR 0 3
10749: PUSH
10750: FOR_TO
10751: IFFALSE 10881
// begin uc_side = side ;
10753: LD_ADDR_OWVAR 20
10757: PUSH
10758: LD_VAR 0 1
10762: ST_TO_ADDR
// uc_nation = nation ;
10763: LD_ADDR_OWVAR 21
10767: PUSH
10768: LD_VAR 0 2
10772: ST_TO_ADDR
// hc_skills = [ skil , Rand ( 0 , skil ) , Rand ( 0 , skil ) , Rand ( 0 , skil ) ] ;
10773: LD_ADDR_OWVAR 31
10777: PUSH
10778: LD_VAR 0 8
10782: PUSH
10783: LD_INT 0
10785: PPUSH
10786: LD_VAR 0 8
10790: PPUSH
10791: CALL_OW 12
10795: PUSH
10796: LD_INT 0
10798: PPUSH
10799: LD_VAR 0 8
10803: PPUSH
10804: CALL_OW 12
10808: PUSH
10809: LD_INT 0
10811: PPUSH
10812: LD_VAR 0 8
10816: PPUSH
10817: CALL_OW 12
10821: PUSH
10822: EMPTY
10823: LIST
10824: LIST
10825: LIST
10826: LIST
10827: ST_TO_ADDR
// hc_class = 1 ;
10828: LD_ADDR_OWVAR 28
10832: PUSH
10833: LD_INT 1
10835: ST_TO_ADDR
// hc_name =  ;
10836: LD_ADDR_OWVAR 26
10840: PUSH
10841: LD_STRING 
10843: ST_TO_ADDR
// hc_gallery =  ;
10844: LD_ADDR_OWVAR 33
10848: PUSH
10849: LD_STRING 
10851: ST_TO_ADDR
// un = CreateHuman ;
10852: LD_ADDR_VAR 0 15
10856: PUSH
10857: CALL_OW 44
10861: ST_TO_ADDR
// PlaceUnitArea ( un , spawnArea , false ) ;
10862: LD_VAR 0 15
10866: PPUSH
10867: LD_VAR 0 9
10871: PPUSH
10872: LD_INT 0
10874: PPUSH
10875: CALL_OW 49
// end ;
10879: GO 10750
10881: POP
10882: POP
// for i = 1 to sniperCount do
10883: LD_ADDR_VAR 0 14
10887: PUSH
10888: DOUBLE
10889: LD_INT 1
10891: DEC
10892: ST_TO_ADDR
10893: LD_VAR 0 4
10897: PUSH
10898: FOR_TO
10899: IFFALSE 11029
// begin uc_side = side ;
10901: LD_ADDR_OWVAR 20
10905: PUSH
10906: LD_VAR 0 1
10910: ST_TO_ADDR
// uc_nation = nation ;
10911: LD_ADDR_OWVAR 21
10915: PUSH
10916: LD_VAR 0 2
10920: ST_TO_ADDR
// hc_skills = [ skil , Rand ( 0 , skil ) , Rand ( 0 , skil ) , Rand ( 0 , skil ) ] ;
10921: LD_ADDR_OWVAR 31
10925: PUSH
10926: LD_VAR 0 8
10930: PUSH
10931: LD_INT 0
10933: PPUSH
10934: LD_VAR 0 8
10938: PPUSH
10939: CALL_OW 12
10943: PUSH
10944: LD_INT 0
10946: PPUSH
10947: LD_VAR 0 8
10951: PPUSH
10952: CALL_OW 12
10956: PUSH
10957: LD_INT 0
10959: PPUSH
10960: LD_VAR 0 8
10964: PPUSH
10965: CALL_OW 12
10969: PUSH
10970: EMPTY
10971: LIST
10972: LIST
10973: LIST
10974: LIST
10975: ST_TO_ADDR
// hc_class = 5 ;
10976: LD_ADDR_OWVAR 28
10980: PUSH
10981: LD_INT 5
10983: ST_TO_ADDR
// hc_name =  ;
10984: LD_ADDR_OWVAR 26
10988: PUSH
10989: LD_STRING 
10991: ST_TO_ADDR
// hc_gallery =  ;
10992: LD_ADDR_OWVAR 33
10996: PUSH
10997: LD_STRING 
10999: ST_TO_ADDR
// un = CreateHuman ;
11000: LD_ADDR_VAR 0 15
11004: PUSH
11005: CALL_OW 44
11009: ST_TO_ADDR
// PlaceUnitArea ( un , spawnArea , false ) ;
11010: LD_VAR 0 15
11014: PPUSH
11015: LD_VAR 0 9
11019: PPUSH
11020: LD_INT 0
11022: PPUSH
11023: CALL_OW 49
// end ;
11027: GO 10898
11029: POP
11030: POP
// for i = 1 to bazookCount do
11031: LD_ADDR_VAR 0 14
11035: PUSH
11036: DOUBLE
11037: LD_INT 1
11039: DEC
11040: ST_TO_ADDR
11041: LD_VAR 0 5
11045: PUSH
11046: FOR_TO
11047: IFFALSE 11185
// begin uc_side = side ;
11049: LD_ADDR_OWVAR 20
11053: PUSH
11054: LD_VAR 0 1
11058: ST_TO_ADDR
// uc_nation = nation ;
11059: LD_ADDR_OWVAR 21
11063: PUSH
11064: LD_VAR 0 2
11068: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , skil ) , Rand ( 0 , skil ) , Rand ( 0 , skil ) , Rand ( 0 , skil ) ] ;
11069: LD_ADDR_OWVAR 31
11073: PUSH
11074: LD_INT 0
11076: PPUSH
11077: LD_VAR 0 8
11081: PPUSH
11082: CALL_OW 12
11086: PUSH
11087: LD_INT 0
11089: PPUSH
11090: LD_VAR 0 8
11094: PPUSH
11095: CALL_OW 12
11099: PUSH
11100: LD_INT 0
11102: PPUSH
11103: LD_VAR 0 8
11107: PPUSH
11108: CALL_OW 12
11112: PUSH
11113: LD_INT 0
11115: PPUSH
11116: LD_VAR 0 8
11120: PPUSH
11121: CALL_OW 12
11125: PUSH
11126: EMPTY
11127: LIST
11128: LIST
11129: LIST
11130: LIST
11131: ST_TO_ADDR
// hc_class = 9 ;
11132: LD_ADDR_OWVAR 28
11136: PUSH
11137: LD_INT 9
11139: ST_TO_ADDR
// hc_name =  ;
11140: LD_ADDR_OWVAR 26
11144: PUSH
11145: LD_STRING 
11147: ST_TO_ADDR
// hc_gallery =  ;
11148: LD_ADDR_OWVAR 33
11152: PUSH
11153: LD_STRING 
11155: ST_TO_ADDR
// un = CreateHuman ;
11156: LD_ADDR_VAR 0 15
11160: PUSH
11161: CALL_OW 44
11165: ST_TO_ADDR
// PlaceUnitArea ( un , spawnArea , false ) ;
11166: LD_VAR 0 15
11170: PPUSH
11171: LD_VAR 0 9
11175: PPUSH
11176: LD_INT 0
11178: PPUSH
11179: CALL_OW 49
// end ;
11183: GO 11046
11185: POP
11186: POP
// for i = 1 to mortalCount do
11187: LD_ADDR_VAR 0 14
11191: PUSH
11192: DOUBLE
11193: LD_INT 1
11195: DEC
11196: ST_TO_ADDR
11197: LD_VAR 0 6
11201: PUSH
11202: FOR_TO
11203: IFFALSE 11333
// begin uc_side = side ;
11205: LD_ADDR_OWVAR 20
11209: PUSH
11210: LD_VAR 0 1
11214: ST_TO_ADDR
// uc_nation = nation ;
11215: LD_ADDR_OWVAR 21
11219: PUSH
11220: LD_VAR 0 2
11224: ST_TO_ADDR
// hc_skills = [ skil , Rand ( 0 , skil ) , Rand ( 0 , skil ) , Rand ( 0 , skil ) ] ;
11225: LD_ADDR_OWVAR 31
11229: PUSH
11230: LD_VAR 0 8
11234: PUSH
11235: LD_INT 0
11237: PPUSH
11238: LD_VAR 0 8
11242: PPUSH
11243: CALL_OW 12
11247: PUSH
11248: LD_INT 0
11250: PPUSH
11251: LD_VAR 0 8
11255: PPUSH
11256: CALL_OW 12
11260: PUSH
11261: LD_INT 0
11263: PPUSH
11264: LD_VAR 0 8
11268: PPUSH
11269: CALL_OW 12
11273: PUSH
11274: EMPTY
11275: LIST
11276: LIST
11277: LIST
11278: LIST
11279: ST_TO_ADDR
// hc_class = 8 ;
11280: LD_ADDR_OWVAR 28
11284: PUSH
11285: LD_INT 8
11287: ST_TO_ADDR
// hc_name =  ;
11288: LD_ADDR_OWVAR 26
11292: PUSH
11293: LD_STRING 
11295: ST_TO_ADDR
// hc_gallery =  ;
11296: LD_ADDR_OWVAR 33
11300: PUSH
11301: LD_STRING 
11303: ST_TO_ADDR
// un = CreateHuman ;
11304: LD_ADDR_VAR 0 15
11308: PUSH
11309: CALL_OW 44
11313: ST_TO_ADDR
// PlaceUnitArea ( un , spawnArea , false ) ;
11314: LD_VAR 0 15
11318: PPUSH
11319: LD_VAR 0 9
11323: PPUSH
11324: LD_INT 0
11326: PPUSH
11327: CALL_OW 49
// end ;
11331: GO 11202
11333: POP
11334: POP
// soldiersOK_list = FilterAllUnits ( [ [ f_side , side ] , [ f_or , [ f_class , 1 ] , [ f_class , 5 ] , [ f_class , 8 ] , [ f_class , 9 ] ] , [ f_lives , 1000 ] ] ) ;
11335: LD_ADDR_VAR 0 18
11339: PUSH
11340: LD_INT 22
11342: PUSH
11343: LD_VAR 0 1
11347: PUSH
11348: EMPTY
11349: LIST
11350: LIST
11351: PUSH
11352: LD_INT 2
11354: PUSH
11355: LD_INT 25
11357: PUSH
11358: LD_INT 1
11360: PUSH
11361: EMPTY
11362: LIST
11363: LIST
11364: PUSH
11365: LD_INT 25
11367: PUSH
11368: LD_INT 5
11370: PUSH
11371: EMPTY
11372: LIST
11373: LIST
11374: PUSH
11375: LD_INT 25
11377: PUSH
11378: LD_INT 8
11380: PUSH
11381: EMPTY
11382: LIST
11383: LIST
11384: PUSH
11385: LD_INT 25
11387: PUSH
11388: LD_INT 9
11390: PUSH
11391: EMPTY
11392: LIST
11393: LIST
11394: PUSH
11395: EMPTY
11396: LIST
11397: LIST
11398: LIST
11399: LIST
11400: LIST
11401: PUSH
11402: LD_INT 24
11404: PUSH
11405: LD_INT 1000
11407: PUSH
11408: EMPTY
11409: LIST
11410: LIST
11411: PUSH
11412: EMPTY
11413: LIST
11414: LIST
11415: LIST
11416: PPUSH
11417: CALL_OW 69
11421: ST_TO_ADDR
// medic_list = FilterAllUnits ( [ [ f_side , side ] , [ f_class , 4 ] ] ) ;
11422: LD_ADDR_VAR 0 17
11426: PUSH
11427: LD_INT 22
11429: PUSH
11430: LD_VAR 0 1
11434: PUSH
11435: EMPTY
11436: LIST
11437: LIST
11438: PUSH
11439: LD_INT 25
11441: PUSH
11442: LD_INT 4
11444: PUSH
11445: EMPTY
11446: LIST
11447: LIST
11448: PUSH
11449: EMPTY
11450: LIST
11451: LIST
11452: PPUSH
11453: CALL_OW 69
11457: ST_TO_ADDR
// for i = 1 to soldiersOK_list do
11458: LD_ADDR_VAR 0 14
11462: PUSH
11463: DOUBLE
11464: LD_INT 1
11466: DEC
11467: ST_TO_ADDR
11468: LD_VAR 0 18
11472: PUSH
11473: FOR_TO
11474: IFFALSE 11503
// begin AddComAgressiveMove ( soldiersOK_list [ i ] , targetX , targetY ) ;
11476: LD_VAR 0 18
11480: PUSH
11481: LD_VAR 0 14
11485: ARRAY
11486: PPUSH
11487: LD_VAR 0 11
11491: PPUSH
11492: LD_VAR 0 12
11496: PPUSH
11497: CALL_OW 174
// end ;
11501: GO 11473
11503: POP
11504: POP
// if medic_list > 0 and soldiersOK_list > 0 then
11505: LD_VAR 0 17
11509: PUSH
11510: LD_INT 0
11512: GREATER
11513: PUSH
11514: LD_VAR 0 18
11518: PUSH
11519: LD_INT 0
11521: GREATER
11522: AND
11523: IFFALSE 11809
// begin repeat begin wait ( 0 0$1 ) ;
11525: LD_INT 35
11527: PPUSH
11528: CALL_OW 67
// damageUnit_list = FilterAllUnits ( [ [ f_side , side ] , [ f_and , [ f_not , [ f_lives , 550 ] ] , [ f_lives , 250 ] ] ] ) ;
11532: LD_ADDR_VAR 0 16
11536: PUSH
11537: LD_INT 22
11539: PUSH
11540: LD_VAR 0 1
11544: PUSH
11545: EMPTY
11546: LIST
11547: LIST
11548: PUSH
11549: LD_INT 1
11551: PUSH
11552: LD_INT 3
11554: PUSH
11555: LD_INT 24
11557: PUSH
11558: LD_INT 550
11560: PUSH
11561: EMPTY
11562: LIST
11563: LIST
11564: PUSH
11565: EMPTY
11566: LIST
11567: LIST
11568: PUSH
11569: LD_INT 24
11571: PUSH
11572: LD_INT 250
11574: PUSH
11575: EMPTY
11576: LIST
11577: LIST
11578: PUSH
11579: EMPTY
11580: LIST
11581: LIST
11582: LIST
11583: PUSH
11584: EMPTY
11585: LIST
11586: LIST
11587: PPUSH
11588: CALL_OW 69
11592: ST_TO_ADDR
// soldiersOK_list = FilterAllUnits ( [ [ f_side , side ] , [ f_or , [ f_class , 1 ] , [ f_class , 5 ] , [ f_class , 8 ] , [ f_class , 9 ] ] , [ f_lives , 1000 ] ] ) ;
11593: LD_ADDR_VAR 0 18
11597: PUSH
11598: LD_INT 22
11600: PUSH
11601: LD_VAR 0 1
11605: PUSH
11606: EMPTY
11607: LIST
11608: LIST
11609: PUSH
11610: LD_INT 2
11612: PUSH
11613: LD_INT 25
11615: PUSH
11616: LD_INT 1
11618: PUSH
11619: EMPTY
11620: LIST
11621: LIST
11622: PUSH
11623: LD_INT 25
11625: PUSH
11626: LD_INT 5
11628: PUSH
11629: EMPTY
11630: LIST
11631: LIST
11632: PUSH
11633: LD_INT 25
11635: PUSH
11636: LD_INT 8
11638: PUSH
11639: EMPTY
11640: LIST
11641: LIST
11642: PUSH
11643: LD_INT 25
11645: PUSH
11646: LD_INT 9
11648: PUSH
11649: EMPTY
11650: LIST
11651: LIST
11652: PUSH
11653: EMPTY
11654: LIST
11655: LIST
11656: LIST
11657: LIST
11658: LIST
11659: PUSH
11660: LD_INT 24
11662: PUSH
11663: LD_INT 1000
11665: PUSH
11666: EMPTY
11667: LIST
11668: LIST
11669: PUSH
11670: EMPTY
11671: LIST
11672: LIST
11673: LIST
11674: PPUSH
11675: CALL_OW 69
11679: ST_TO_ADDR
// for i = 1 to damageUnit_list + 0 do
11680: LD_ADDR_VAR 0 14
11684: PUSH
11685: DOUBLE
11686: LD_INT 1
11688: DEC
11689: ST_TO_ADDR
11690: LD_VAR 0 16
11694: PUSH
11695: LD_INT 0
11697: PLUS
11698: PUSH
11699: FOR_TO
11700: IFFALSE 11750
// begin ComMoveToArea ( damageUnit_list [ i ] , healArea ) ;
11702: LD_VAR 0 16
11706: PUSH
11707: LD_VAR 0 14
11711: ARRAY
11712: PPUSH
11713: LD_VAR 0 10
11717: PPUSH
11718: CALL_OW 113
// AddComHeal ( medic_list [ i ] , damageUnit_list [ i ] ) ;
11722: LD_VAR 0 17
11726: PUSH
11727: LD_VAR 0 14
11731: ARRAY
11732: PPUSH
11733: LD_VAR 0 16
11737: PUSH
11738: LD_VAR 0 14
11742: ARRAY
11743: PPUSH
11744: CALL_OW 188
// end ;
11748: GO 11699
11750: POP
11751: POP
// for i = 1 to soldiersOK_list do
11752: LD_ADDR_VAR 0 14
11756: PUSH
11757: DOUBLE
11758: LD_INT 1
11760: DEC
11761: ST_TO_ADDR
11762: LD_VAR 0 18
11766: PUSH
11767: FOR_TO
11768: IFFALSE 11797
// begin ComAgressiveMove ( soldiersOK_list [ i ] , targetX , targetY ) ;
11770: LD_VAR 0 18
11774: PUSH
11775: LD_VAR 0 14
11779: ARRAY
11780: PPUSH
11781: LD_VAR 0 11
11785: PPUSH
11786: LD_VAR 0 12
11790: PPUSH
11791: CALL_OW 114
// end ;
11795: GO 11767
11797: POP
11798: POP
// end until medicCount = 0 ;
11799: LD_VAR 0 7
11803: PUSH
11804: LD_INT 0
11806: EQUAL
11807: IFFALSE 11525
// end ; end ;
11809: LD_VAR 0 13
11813: RET
// export function RespawnAttackVehicle ( area , side , vehCount , mehskill , nation , vehengine , vehcontrol , Ruenableweapon , ArenableWeapon , amEnableWeapon , repairArea , targetX , targetY ) ; var i , j , rutemp , artemp , amtemp , lastIndex1 , lastIndex2 , lastIndex3 , veh , tempTable , ruWeaponTab , arWeaponTab , amWeaponTab , ruChassisTab , arChassisTab , amChassisTab , Vehicle_list , VehicleOK_list , damageVehicle_list , emptyVehicle_list , mechanicInside_list , mechanicOutside_list ; begin
11814: LD_INT 0
11816: PPUSH
11817: PPUSH
11818: PPUSH
11819: PPUSH
11820: PPUSH
11821: PPUSH
11822: PPUSH
11823: PPUSH
11824: PPUSH
11825: PPUSH
11826: PPUSH
11827: PPUSH
11828: PPUSH
11829: PPUSH
11830: PPUSH
11831: PPUSH
11832: PPUSH
11833: PPUSH
11834: PPUSH
11835: PPUSH
11836: PPUSH
11837: PPUSH
11838: PPUSH
// ruWeaponTab = ruenableweapon ;
11839: LD_ADDR_VAR 0 25
11843: PUSH
11844: LD_VAR 0 8
11848: ST_TO_ADDR
// ruChassisTab = [ 21 , 22 , 23 , 24 ] ;
11849: LD_ADDR_VAR 0 28
11853: PUSH
11854: LD_INT 21
11856: PUSH
11857: LD_INT 22
11859: PUSH
11860: LD_INT 23
11862: PUSH
11863: LD_INT 24
11865: PUSH
11866: EMPTY
11867: LIST
11868: LIST
11869: LIST
11870: LIST
11871: ST_TO_ADDR
// arWeaponTab = arenableweapon ;
11872: LD_ADDR_VAR 0 26
11876: PUSH
11877: LD_VAR 0 9
11881: ST_TO_ADDR
// arChassisTab = [ 11 , 12 , 13 , 14 ] ;
11882: LD_ADDR_VAR 0 29
11886: PUSH
11887: LD_INT 11
11889: PUSH
11890: LD_INT 12
11892: PUSH
11893: LD_INT 13
11895: PUSH
11896: LD_INT 14
11898: PUSH
11899: EMPTY
11900: LIST
11901: LIST
11902: LIST
11903: LIST
11904: ST_TO_ADDR
// amWeaponTab = amenableweapon ;
11905: LD_ADDR_VAR 0 27
11909: PUSH
11910: LD_VAR 0 10
11914: ST_TO_ADDR
// amChassisTab = [ 1 , 2 , 3 , 4 , 5 ] ;
11915: LD_ADDR_VAR 0 30
11919: PUSH
11920: LD_INT 1
11922: PUSH
11923: LD_INT 2
11925: PUSH
11926: LD_INT 3
11928: PUSH
11929: LD_INT 4
11931: PUSH
11932: LD_INT 5
11934: PUSH
11935: EMPTY
11936: LIST
11937: LIST
11938: LIST
11939: LIST
11940: LIST
11941: ST_TO_ADDR
// amtemp = amWeaponTab ;
11942: LD_ADDR_VAR 0 19
11946: PUSH
11947: LD_VAR 0 27
11951: ST_TO_ADDR
// artemp = arWeaponTab ;
11952: LD_ADDR_VAR 0 18
11956: PUSH
11957: LD_VAR 0 26
11961: ST_TO_ADDR
// rutemp = ruWeaponTab ;
11962: LD_ADDR_VAR 0 17
11966: PUSH
11967: LD_VAR 0 25
11971: ST_TO_ADDR
// lastIndex1 = SizeTab ( amtemp ) ;
11972: LD_ADDR_VAR 0 20
11976: PUSH
11977: LD_VAR 0 19
11981: PPUSH
11982: CALL 7222 0 1
11986: ST_TO_ADDR
// lastIndex2 = SizeTab ( artemp ) ;
11987: LD_ADDR_VAR 0 21
11991: PUSH
11992: LD_VAR 0 18
11996: PPUSH
11997: CALL 7222 0 1
12001: ST_TO_ADDR
// lastIndex3 = SizeTab ( rutemp ) ;
12002: LD_ADDR_VAR 0 22
12006: PUSH
12007: LD_VAR 0 17
12011: PPUSH
12012: CALL 7222 0 1
12016: ST_TO_ADDR
// repeat begin wait ( 0 0$1 ) ;
12017: LD_INT 35
12019: PPUSH
12020: CALL_OW 67
// if nation = 1 then
12024: LD_VAR 0 5
12028: PUSH
12029: LD_INT 1
12031: EQUAL
12032: IFFALSE 12574
// begin uc_side = side ;
12034: LD_ADDR_OWVAR 20
12038: PUSH
12039: LD_VAR 0 2
12043: ST_TO_ADDR
// uc_nation = nation ;
12044: LD_ADDR_OWVAR 21
12048: PUSH
12049: LD_VAR 0 5
12053: ST_TO_ADDR
// vc_engine = vehengine ;
12054: LD_ADDR_OWVAR 39
12058: PUSH
12059: LD_VAR 0 6
12063: ST_TO_ADDR
// vc_control = vehcontrol ;
12064: LD_ADDR_OWVAR 38
12068: PUSH
12069: LD_VAR 0 7
12073: ST_TO_ADDR
// vc_weapon = amWeaponTab [ Rand ( 1 , lastIndex1 ) ] ;
12074: LD_ADDR_OWVAR 40
12078: PUSH
12079: LD_VAR 0 27
12083: PUSH
12084: LD_INT 1
12086: PPUSH
12087: LD_VAR 0 20
12091: PPUSH
12092: CALL_OW 12
12096: ARRAY
12097: ST_TO_ADDR
// for j = 1 to amWeaponTab do
12098: LD_ADDR_VAR 0 16
12102: PUSH
12103: DOUBLE
12104: LD_INT 1
12106: DEC
12107: ST_TO_ADDR
12108: LD_VAR 0 27
12112: PUSH
12113: FOR_TO
12114: IFFALSE 12409
// begin if amWeaponTab [ j ] = 2 or amWeaponTab [ j ] = 3 then
12116: LD_VAR 0 27
12120: PUSH
12121: LD_VAR 0 16
12125: ARRAY
12126: PUSH
12127: LD_INT 2
12129: EQUAL
12130: PUSH
12131: LD_VAR 0 27
12135: PUSH
12136: LD_VAR 0 16
12140: ARRAY
12141: PUSH
12142: LD_INT 3
12144: EQUAL
12145: OR
12146: IFFALSE 12197
// begin amChassisTab = [ 1 , 2 , 3 , 4 , 5 ] ;
12148: LD_ADDR_VAR 0 30
12152: PUSH
12153: LD_INT 1
12155: PUSH
12156: LD_INT 2
12158: PUSH
12159: LD_INT 3
12161: PUSH
12162: LD_INT 4
12164: PUSH
12165: LD_INT 5
12167: PUSH
12168: EMPTY
12169: LIST
12170: LIST
12171: LIST
12172: LIST
12173: LIST
12174: ST_TO_ADDR
// vc_chassis = amChassisTab [ Rand ( 1 , 5 ) ] ;
12175: LD_ADDR_OWVAR 37
12179: PUSH
12180: LD_VAR 0 30
12184: PUSH
12185: LD_INT 1
12187: PPUSH
12188: LD_INT 5
12190: PPUSH
12191: CALL_OW 12
12195: ARRAY
12196: ST_TO_ADDR
// end ; if amWeaponTab [ j ] = 4 or amWeaponTab [ j ] = 5 or amWeaponTab [ j ] = 9 or amWeaponTab [ j ] = 11 or amWeaponTab [ j ] = 7 then
12197: LD_VAR 0 27
12201: PUSH
12202: LD_VAR 0 16
12206: ARRAY
12207: PUSH
12208: LD_INT 4
12210: EQUAL
12211: PUSH
12212: LD_VAR 0 27
12216: PUSH
12217: LD_VAR 0 16
12221: ARRAY
12222: PUSH
12223: LD_INT 5
12225: EQUAL
12226: OR
12227: PUSH
12228: LD_VAR 0 27
12232: PUSH
12233: LD_VAR 0 16
12237: ARRAY
12238: PUSH
12239: LD_INT 9
12241: EQUAL
12242: OR
12243: PUSH
12244: LD_VAR 0 27
12248: PUSH
12249: LD_VAR 0 16
12253: ARRAY
12254: PUSH
12255: LD_INT 11
12257: EQUAL
12258: OR
12259: PUSH
12260: LD_VAR 0 27
12264: PUSH
12265: LD_VAR 0 16
12269: ARRAY
12270: PUSH
12271: LD_INT 7
12273: EQUAL
12274: OR
12275: IFFALSE 12322
// begin amChassisTab = [ 2 , 3 , 4 , 5 ] ;
12277: LD_ADDR_VAR 0 30
12281: PUSH
12282: LD_INT 2
12284: PUSH
12285: LD_INT 3
12287: PUSH
12288: LD_INT 4
12290: PUSH
12291: LD_INT 5
12293: PUSH
12294: EMPTY
12295: LIST
12296: LIST
12297: LIST
12298: LIST
12299: ST_TO_ADDR
// vc_chassis = amChassisTab [ Rand ( 1 , 4 ) ] ;
12300: LD_ADDR_OWVAR 37
12304: PUSH
12305: LD_VAR 0 30
12309: PUSH
12310: LD_INT 1
12312: PPUSH
12313: LD_INT 4
12315: PPUSH
12316: CALL_OW 12
12320: ARRAY
12321: ST_TO_ADDR
// end ; if amWeaponTab [ j ] = 8 or amWeaponTab [ j ] = 6 or amWeaponTab [ j ] = 10 then
12322: LD_VAR 0 27
12326: PUSH
12327: LD_VAR 0 16
12331: ARRAY
12332: PUSH
12333: LD_INT 8
12335: EQUAL
12336: PUSH
12337: LD_VAR 0 27
12341: PUSH
12342: LD_VAR 0 16
12346: ARRAY
12347: PUSH
12348: LD_INT 6
12350: EQUAL
12351: OR
12352: PUSH
12353: LD_VAR 0 27
12357: PUSH
12358: LD_VAR 0 16
12362: ARRAY
12363: PUSH
12364: LD_INT 10
12366: EQUAL
12367: OR
12368: IFFALSE 12407
// begin amChassisTab = [ 4 , 5 ] ;
12370: LD_ADDR_VAR 0 30
12374: PUSH
12375: LD_INT 4
12377: PUSH
12378: LD_INT 5
12380: PUSH
12381: EMPTY
12382: LIST
12383: LIST
12384: ST_TO_ADDR
// vc_chassis = amChassisTab [ Rand ( 1 , 2 ) ] ;
12385: LD_ADDR_OWVAR 37
12389: PUSH
12390: LD_VAR 0 30
12394: PUSH
12395: LD_INT 1
12397: PPUSH
12398: LD_INT 2
12400: PPUSH
12401: CALL_OW 12
12405: ARRAY
12406: ST_TO_ADDR
// end ; end ;
12407: GO 12113
12409: POP
12410: POP
// veh = CreateVehicle ;
12411: LD_ADDR_VAR 0 23
12415: PUSH
12416: CALL_OW 45
12420: ST_TO_ADDR
// PlaceUnitArea ( veh , area , false ) ;
12421: LD_VAR 0 23
12425: PPUSH
12426: LD_VAR 0 1
12430: PPUSH
12431: LD_INT 0
12433: PPUSH
12434: CALL_OW 49
// if vehcontrol = 1 then
12438: LD_VAR 0 7
12442: PUSH
12443: LD_INT 1
12445: EQUAL
12446: IFFALSE 12560
// begin hc_class = 3 ;
12448: LD_ADDR_OWVAR 28
12452: PUSH
12453: LD_INT 3
12455: ST_TO_ADDR
// hc_name =  ;
12456: LD_ADDR_OWVAR 26
12460: PUSH
12461: LD_STRING 
12463: ST_TO_ADDR
// hc_gallery =  ;
12464: LD_ADDR_OWVAR 33
12468: PUSH
12469: LD_STRING 
12471: ST_TO_ADDR
// hc_sex = [ Rand ( sex_female , sex_male ) ] ;
12472: LD_ADDR_OWVAR 27
12476: PUSH
12477: LD_INT 2
12479: PPUSH
12480: LD_INT 1
12482: PPUSH
12483: CALL_OW 12
12487: PUSH
12488: EMPTY
12489: LIST
12490: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , mehskill ) , Rand ( 0 , mehskill ) , mehskill , Rand ( 0 , mehskill ) ] ;
12491: LD_ADDR_OWVAR 31
12495: PUSH
12496: LD_INT 0
12498: PPUSH
12499: LD_VAR 0 4
12503: PPUSH
12504: CALL_OW 12
12508: PUSH
12509: LD_INT 0
12511: PPUSH
12512: LD_VAR 0 4
12516: PPUSH
12517: CALL_OW 12
12521: PUSH
12522: LD_VAR 0 4
12526: PUSH
12527: LD_INT 0
12529: PPUSH
12530: LD_VAR 0 4
12534: PPUSH
12535: CALL_OW 12
12539: PUSH
12540: EMPTY
12541: LIST
12542: LIST
12543: LIST
12544: LIST
12545: ST_TO_ADDR
// PlaceHumanInUnit ( CreateHuman , veh ) ;
12546: CALL_OW 44
12550: PPUSH
12551: LD_VAR 0 23
12555: PPUSH
12556: CALL_OW 52
// end ; i = i + 1 ;
12560: LD_ADDR_VAR 0 15
12564: PUSH
12565: LD_VAR 0 15
12569: PUSH
12570: LD_INT 1
12572: PLUS
12573: ST_TO_ADDR
// end ; if nation = 2 then
12574: LD_VAR 0 5
12578: PUSH
12579: LD_INT 2
12581: EQUAL
12582: IFFALSE 13082
// begin uc_side = side ;
12584: LD_ADDR_OWVAR 20
12588: PUSH
12589: LD_VAR 0 2
12593: ST_TO_ADDR
// uc_nation = nation ;
12594: LD_ADDR_OWVAR 21
12598: PUSH
12599: LD_VAR 0 5
12603: ST_TO_ADDR
// vc_engine = vehengine ;
12604: LD_ADDR_OWVAR 39
12608: PUSH
12609: LD_VAR 0 6
12613: ST_TO_ADDR
// vc_control = vehcontrol ;
12614: LD_ADDR_OWVAR 38
12618: PUSH
12619: LD_VAR 0 7
12623: ST_TO_ADDR
// vc_weapon = arWeaponTab [ Rand ( 1 , lastIndex2 ) ] ;
12624: LD_ADDR_OWVAR 40
12628: PUSH
12629: LD_VAR 0 26
12633: PUSH
12634: LD_INT 1
12636: PPUSH
12637: LD_VAR 0 21
12641: PPUSH
12642: CALL_OW 12
12646: ARRAY
12647: ST_TO_ADDR
// for j = 1 to arWeaponTab do
12648: LD_ADDR_VAR 0 16
12652: PUSH
12653: DOUBLE
12654: LD_INT 1
12656: DEC
12657: ST_TO_ADDR
12658: LD_VAR 0 26
12662: PUSH
12663: FOR_TO
12664: IFFALSE 12917
// begin if arWeaponTab [ j ] = 24 or arWeaponTab [ j ] = 22 or arWeaponTab [ j ] = 23 or arWeaponTab [ j ] = 30 then
12666: LD_VAR 0 26
12670: PUSH
12671: LD_VAR 0 16
12675: ARRAY
12676: PUSH
12677: LD_INT 24
12679: EQUAL
12680: PUSH
12681: LD_VAR 0 26
12685: PUSH
12686: LD_VAR 0 16
12690: ARRAY
12691: PUSH
12692: LD_INT 22
12694: EQUAL
12695: OR
12696: PUSH
12697: LD_VAR 0 26
12701: PUSH
12702: LD_VAR 0 16
12706: ARRAY
12707: PUSH
12708: LD_INT 23
12710: EQUAL
12711: OR
12712: PUSH
12713: LD_VAR 0 26
12717: PUSH
12718: LD_VAR 0 16
12722: ARRAY
12723: PUSH
12724: LD_INT 30
12726: EQUAL
12727: OR
12728: IFFALSE 12775
// begin arChassisTab = [ 11 , 12 , 13 , 14 ] ;
12730: LD_ADDR_VAR 0 29
12734: PUSH
12735: LD_INT 11
12737: PUSH
12738: LD_INT 12
12740: PUSH
12741: LD_INT 13
12743: PUSH
12744: LD_INT 14
12746: PUSH
12747: EMPTY
12748: LIST
12749: LIST
12750: LIST
12751: LIST
12752: ST_TO_ADDR
// vc_chassis = arChassisTab [ Rand ( 1 , 4 ) ] ;
12753: LD_ADDR_OWVAR 37
12757: PUSH
12758: LD_VAR 0 29
12762: PUSH
12763: LD_INT 1
12765: PPUSH
12766: LD_INT 4
12768: PPUSH
12769: CALL_OW 12
12773: ARRAY
12774: ST_TO_ADDR
// end ; if arWeaponTab [ j ] = 29 or arWeaponTab [ j ] = 28 or arWeaponTab [ j ] = 27 or arWeaponTab [ j ] = 26 or arWeaponTab [ j ] = 25 then
12775: LD_VAR 0 26
12779: PUSH
12780: LD_VAR 0 16
12784: ARRAY
12785: PUSH
12786: LD_INT 29
12788: EQUAL
12789: PUSH
12790: LD_VAR 0 26
12794: PUSH
12795: LD_VAR 0 16
12799: ARRAY
12800: PUSH
12801: LD_INT 28
12803: EQUAL
12804: OR
12805: PUSH
12806: LD_VAR 0 26
12810: PUSH
12811: LD_VAR 0 16
12815: ARRAY
12816: PUSH
12817: LD_INT 27
12819: EQUAL
12820: OR
12821: PUSH
12822: LD_VAR 0 26
12826: PUSH
12827: LD_VAR 0 16
12831: ARRAY
12832: PUSH
12833: LD_INT 26
12835: EQUAL
12836: OR
12837: PUSH
12838: LD_VAR 0 26
12842: PUSH
12843: LD_VAR 0 16
12847: ARRAY
12848: PUSH
12849: LD_INT 25
12851: EQUAL
12852: OR
12853: IFFALSE 12892
// begin arChassisTab = [ 13 , 14 ] ;
12855: LD_ADDR_VAR 0 29
12859: PUSH
12860: LD_INT 13
12862: PUSH
12863: LD_INT 14
12865: PUSH
12866: EMPTY
12867: LIST
12868: LIST
12869: ST_TO_ADDR
// vc_chassis = arChassisTab [ Rand ( 1 , 2 ) ] ;
12870: LD_ADDR_OWVAR 37
12874: PUSH
12875: LD_VAR 0 29
12879: PUSH
12880: LD_INT 1
12882: PPUSH
12883: LD_INT 2
12885: PPUSH
12886: CALL_OW 12
12890: ARRAY
12891: ST_TO_ADDR
// end ; arChassisTab = [ 11 , 12 , 13 , 14 ] ;
12892: LD_ADDR_VAR 0 29
12896: PUSH
12897: LD_INT 11
12899: PUSH
12900: LD_INT 12
12902: PUSH
12903: LD_INT 13
12905: PUSH
12906: LD_INT 14
12908: PUSH
12909: EMPTY
12910: LIST
12911: LIST
12912: LIST
12913: LIST
12914: ST_TO_ADDR
// end ;
12915: GO 12663
12917: POP
12918: POP
// veh = CreateVehicle ;
12919: LD_ADDR_VAR 0 23
12923: PUSH
12924: CALL_OW 45
12928: ST_TO_ADDR
// PlaceUnitArea ( veh , area , false ) ;
12929: LD_VAR 0 23
12933: PPUSH
12934: LD_VAR 0 1
12938: PPUSH
12939: LD_INT 0
12941: PPUSH
12942: CALL_OW 49
// if vehcontrol = 1 then
12946: LD_VAR 0 7
12950: PUSH
12951: LD_INT 1
12953: EQUAL
12954: IFFALSE 13068
// begin hc_class = 3 ;
12956: LD_ADDR_OWVAR 28
12960: PUSH
12961: LD_INT 3
12963: ST_TO_ADDR
// hc_name =  ;
12964: LD_ADDR_OWVAR 26
12968: PUSH
12969: LD_STRING 
12971: ST_TO_ADDR
// hc_gallery =  ;
12972: LD_ADDR_OWVAR 33
12976: PUSH
12977: LD_STRING 
12979: ST_TO_ADDR
// hc_sex = [ Rand ( sex_female , sex_male ) ] ;
12980: LD_ADDR_OWVAR 27
12984: PUSH
12985: LD_INT 2
12987: PPUSH
12988: LD_INT 1
12990: PPUSH
12991: CALL_OW 12
12995: PUSH
12996: EMPTY
12997: LIST
12998: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , mehskill ) , Rand ( 0 , mehskill ) , mehskill , Rand ( 0 , mehskill ) ] ;
12999: LD_ADDR_OWVAR 31
13003: PUSH
13004: LD_INT 0
13006: PPUSH
13007: LD_VAR 0 4
13011: PPUSH
13012: CALL_OW 12
13016: PUSH
13017: LD_INT 0
13019: PPUSH
13020: LD_VAR 0 4
13024: PPUSH
13025: CALL_OW 12
13029: PUSH
13030: LD_VAR 0 4
13034: PUSH
13035: LD_INT 0
13037: PPUSH
13038: LD_VAR 0 4
13042: PPUSH
13043: CALL_OW 12
13047: PUSH
13048: EMPTY
13049: LIST
13050: LIST
13051: LIST
13052: LIST
13053: ST_TO_ADDR
// PlaceHumanInUnit ( CreateHuman , veh ) ;
13054: CALL_OW 44
13058: PPUSH
13059: LD_VAR 0 23
13063: PPUSH
13064: CALL_OW 52
// end ; i = i + 1 ;
13068: LD_ADDR_VAR 0 15
13072: PUSH
13073: LD_VAR 0 15
13077: PUSH
13078: LD_INT 1
13080: PLUS
13081: ST_TO_ADDR
// end ; if nation = 3 then
13082: LD_VAR 0 5
13086: PUSH
13087: LD_INT 3
13089: EQUAL
13090: IFFALSE 13581
// begin uc_side = side ;
13092: LD_ADDR_OWVAR 20
13096: PUSH
13097: LD_VAR 0 2
13101: ST_TO_ADDR
// uc_nation = nation ;
13102: LD_ADDR_OWVAR 21
13106: PUSH
13107: LD_VAR 0 5
13111: ST_TO_ADDR
// ruChassisTab = [ 21 , 22 , 23 , 24 ] ;
13112: LD_ADDR_VAR 0 28
13116: PUSH
13117: LD_INT 21
13119: PUSH
13120: LD_INT 22
13122: PUSH
13123: LD_INT 23
13125: PUSH
13126: LD_INT 24
13128: PUSH
13129: EMPTY
13130: LIST
13131: LIST
13132: LIST
13133: LIST
13134: ST_TO_ADDR
// vc_engine = vehengine ;
13135: LD_ADDR_OWVAR 39
13139: PUSH
13140: LD_VAR 0 6
13144: ST_TO_ADDR
// vc_control = vehcontrol ;
13145: LD_ADDR_OWVAR 38
13149: PUSH
13150: LD_VAR 0 7
13154: ST_TO_ADDR
// vc_weapon = ruWeaponTab [ Rand ( 1 , lastIndex3 ) ] ;
13155: LD_ADDR_OWVAR 40
13159: PUSH
13160: LD_VAR 0 25
13164: PUSH
13165: LD_INT 1
13167: PPUSH
13168: LD_VAR 0 22
13172: PPUSH
13173: CALL_OW 12
13177: ARRAY
13178: ST_TO_ADDR
// for j = 1 to ruWeaponTab do
13179: LD_ADDR_VAR 0 16
13183: PUSH
13184: DOUBLE
13185: LD_INT 1
13187: DEC
13188: ST_TO_ADDR
13189: LD_VAR 0 25
13193: PUSH
13194: FOR_TO
13195: IFFALSE 13416
// begin if ruWeaponTab [ j ] = 42 or ruWeaponTab [ j ] = 43 or ruWeaponTab [ j ] = 44 or ruWeaponTab [ j ] = 45 or ruWeaponTab [ j ] = 49 then
13197: LD_VAR 0 25
13201: PUSH
13202: LD_VAR 0 16
13206: ARRAY
13207: PUSH
13208: LD_INT 42
13210: EQUAL
13211: PUSH
13212: LD_VAR 0 25
13216: PUSH
13217: LD_VAR 0 16
13221: ARRAY
13222: PUSH
13223: LD_INT 43
13225: EQUAL
13226: OR
13227: PUSH
13228: LD_VAR 0 25
13232: PUSH
13233: LD_VAR 0 16
13237: ARRAY
13238: PUSH
13239: LD_INT 44
13241: EQUAL
13242: OR
13243: PUSH
13244: LD_VAR 0 25
13248: PUSH
13249: LD_VAR 0 16
13253: ARRAY
13254: PUSH
13255: LD_INT 45
13257: EQUAL
13258: OR
13259: PUSH
13260: LD_VAR 0 25
13264: PUSH
13265: LD_VAR 0 16
13269: ARRAY
13270: PUSH
13271: LD_INT 49
13273: EQUAL
13274: OR
13275: IFFALSE 13322
// begin ruChassisTab = [ 21 , 22 , 23 , 24 ] ;
13277: LD_ADDR_VAR 0 28
13281: PUSH
13282: LD_INT 21
13284: PUSH
13285: LD_INT 22
13287: PUSH
13288: LD_INT 23
13290: PUSH
13291: LD_INT 24
13293: PUSH
13294: EMPTY
13295: LIST
13296: LIST
13297: LIST
13298: LIST
13299: ST_TO_ADDR
// vc_chassis = ruChassisTab [ Rand ( 1 , 4 ) ] ;
13300: LD_ADDR_OWVAR 37
13304: PUSH
13305: LD_VAR 0 28
13309: PUSH
13310: LD_INT 1
13312: PPUSH
13313: LD_INT 4
13315: PPUSH
13316: CALL_OW 12
13320: ARRAY
13321: ST_TO_ADDR
// end ; if ruWeaponTab [ j ] = 46 or ruWeaponTab [ j ] = 47 then
13322: LD_VAR 0 25
13326: PUSH
13327: LD_VAR 0 16
13331: ARRAY
13332: PUSH
13333: LD_INT 46
13335: EQUAL
13336: PUSH
13337: LD_VAR 0 25
13341: PUSH
13342: LD_VAR 0 16
13346: ARRAY
13347: PUSH
13348: LD_INT 47
13350: EQUAL
13351: OR
13352: IFFALSE 13391
// begin ruChassisTab = [ 23 , 24 ] ;
13354: LD_ADDR_VAR 0 28
13358: PUSH
13359: LD_INT 23
13361: PUSH
13362: LD_INT 24
13364: PUSH
13365: EMPTY
13366: LIST
13367: LIST
13368: ST_TO_ADDR
// vc_chassis = ruChassisTab [ Rand ( 1 , 2 ) ] ;
13369: LD_ADDR_OWVAR 37
13373: PUSH
13374: LD_VAR 0 28
13378: PUSH
13379: LD_INT 1
13381: PPUSH
13382: LD_INT 2
13384: PPUSH
13385: CALL_OW 12
13389: ARRAY
13390: ST_TO_ADDR
// end ; ruChassisTab = [ 21 , 22 , 23 , 24 ] ;
13391: LD_ADDR_VAR 0 28
13395: PUSH
13396: LD_INT 21
13398: PUSH
13399: LD_INT 22
13401: PUSH
13402: LD_INT 23
13404: PUSH
13405: LD_INT 24
13407: PUSH
13408: EMPTY
13409: LIST
13410: LIST
13411: LIST
13412: LIST
13413: ST_TO_ADDR
// end ;
13414: GO 13194
13416: POP
13417: POP
// veh = CreateVehicle ;
13418: LD_ADDR_VAR 0 23
13422: PUSH
13423: CALL_OW 45
13427: ST_TO_ADDR
// PlaceUnitArea ( veh , area , false ) ;
13428: LD_VAR 0 23
13432: PPUSH
13433: LD_VAR 0 1
13437: PPUSH
13438: LD_INT 0
13440: PPUSH
13441: CALL_OW 49
// if vehcontrol = 1 then
13445: LD_VAR 0 7
13449: PUSH
13450: LD_INT 1
13452: EQUAL
13453: IFFALSE 13567
// begin hc_class = 3 ;
13455: LD_ADDR_OWVAR 28
13459: PUSH
13460: LD_INT 3
13462: ST_TO_ADDR
// hc_name =  ;
13463: LD_ADDR_OWVAR 26
13467: PUSH
13468: LD_STRING 
13470: ST_TO_ADDR
// hc_gallery =  ;
13471: LD_ADDR_OWVAR 33
13475: PUSH
13476: LD_STRING 
13478: ST_TO_ADDR
// hc_sex = [ Rand ( sex_female , sex_male ) ] ;
13479: LD_ADDR_OWVAR 27
13483: PUSH
13484: LD_INT 2
13486: PPUSH
13487: LD_INT 1
13489: PPUSH
13490: CALL_OW 12
13494: PUSH
13495: EMPTY
13496: LIST
13497: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , mehskill ) , Rand ( 0 , mehskill ) , mehskill , Rand ( 0 , mehskill ) ] ;
13498: LD_ADDR_OWVAR 31
13502: PUSH
13503: LD_INT 0
13505: PPUSH
13506: LD_VAR 0 4
13510: PPUSH
13511: CALL_OW 12
13515: PUSH
13516: LD_INT 0
13518: PPUSH
13519: LD_VAR 0 4
13523: PPUSH
13524: CALL_OW 12
13528: PUSH
13529: LD_VAR 0 4
13533: PUSH
13534: LD_INT 0
13536: PPUSH
13537: LD_VAR 0 4
13541: PPUSH
13542: CALL_OW 12
13546: PUSH
13547: EMPTY
13548: LIST
13549: LIST
13550: LIST
13551: LIST
13552: ST_TO_ADDR
// PlaceHumanInUnit ( CreateHuman , veh ) ;
13553: CALL_OW 44
13557: PPUSH
13558: LD_VAR 0 23
13562: PPUSH
13563: CALL_OW 52
// end ; i = i + 1 ;
13567: LD_ADDR_VAR 0 15
13571: PUSH
13572: LD_VAR 0 15
13576: PUSH
13577: LD_INT 1
13579: PLUS
13580: ST_TO_ADDR
// end ; end until i = vehCount ;
13581: LD_VAR 0 15
13585: PUSH
13586: LD_VAR 0 3
13590: EQUAL
13591: IFFALSE 12017
// vehicle_list = FilterAllUnits ( [ [ f_side , side ] , [ f_type , unit_vehicle ] ] ) ;
13593: LD_ADDR_VAR 0 31
13597: PUSH
13598: LD_INT 22
13600: PUSH
13601: LD_VAR 0 2
13605: PUSH
13606: EMPTY
13607: LIST
13608: LIST
13609: PUSH
13610: LD_INT 21
13612: PUSH
13613: LD_INT 2
13615: PUSH
13616: EMPTY
13617: LIST
13618: LIST
13619: PUSH
13620: EMPTY
13621: LIST
13622: LIST
13623: PPUSH
13624: CALL_OW 69
13628: ST_TO_ADDR
// repeat begin wait ( 0 0$3 ) ;
13629: LD_INT 105
13631: PPUSH
13632: CALL_OW 67
// VehicleOK_list = FilterAllUnits ( [ [ f_side , side ] , [ f_type , unit_vehicle ] , [ f_lives , 1000 ] ] ) ;
13636: LD_ADDR_VAR 0 32
13640: PUSH
13641: LD_INT 22
13643: PUSH
13644: LD_VAR 0 2
13648: PUSH
13649: EMPTY
13650: LIST
13651: LIST
13652: PUSH
13653: LD_INT 21
13655: PUSH
13656: LD_INT 2
13658: PUSH
13659: EMPTY
13660: LIST
13661: LIST
13662: PUSH
13663: LD_INT 24
13665: PUSH
13666: LD_INT 1000
13668: PUSH
13669: EMPTY
13670: LIST
13671: LIST
13672: PUSH
13673: EMPTY
13674: LIST
13675: LIST
13676: LIST
13677: PPUSH
13678: CALL_OW 69
13682: ST_TO_ADDR
// damageVehicle_list = FilterAllUnits ( [ [ f_side , side ] , [ f_type , unit_vehicle ] , [ f_not , [ f_lives , 550 ] ] ] ) ;
13683: LD_ADDR_VAR 0 33
13687: PUSH
13688: LD_INT 22
13690: PUSH
13691: LD_VAR 0 2
13695: PUSH
13696: EMPTY
13697: LIST
13698: LIST
13699: PUSH
13700: LD_INT 21
13702: PUSH
13703: LD_INT 2
13705: PUSH
13706: EMPTY
13707: LIST
13708: LIST
13709: PUSH
13710: LD_INT 3
13712: PUSH
13713: LD_INT 24
13715: PUSH
13716: LD_INT 550
13718: PUSH
13719: EMPTY
13720: LIST
13721: LIST
13722: PUSH
13723: EMPTY
13724: LIST
13725: LIST
13726: PUSH
13727: EMPTY
13728: LIST
13729: LIST
13730: LIST
13731: PPUSH
13732: CALL_OW 69
13736: ST_TO_ADDR
// emptyVehicle_list = FilterUnitsInArea ( repairArea , [ [ f_side , side ] , [ f_type , unit_vehicle ] , [ f_lives , 1000 ] , [ f_empty ] ] ) ;
13737: LD_ADDR_VAR 0 34
13741: PUSH
13742: LD_VAR 0 11
13746: PPUSH
13747: LD_INT 22
13749: PUSH
13750: LD_VAR 0 2
13754: PUSH
13755: EMPTY
13756: LIST
13757: LIST
13758: PUSH
13759: LD_INT 21
13761: PUSH
13762: LD_INT 2
13764: PUSH
13765: EMPTY
13766: LIST
13767: LIST
13768: PUSH
13769: LD_INT 24
13771: PUSH
13772: LD_INT 1000
13774: PUSH
13775: EMPTY
13776: LIST
13777: LIST
13778: PUSH
13779: LD_INT 58
13781: PUSH
13782: EMPTY
13783: LIST
13784: PUSH
13785: EMPTY
13786: LIST
13787: LIST
13788: LIST
13789: LIST
13790: PPUSH
13791: CALL_OW 70
13795: ST_TO_ADDR
// mechanicInside_list = UnitsInside ( damageVehicle_list [ i ] ) ;
13796: LD_ADDR_VAR 0 35
13800: PUSH
13801: LD_VAR 0 33
13805: PUSH
13806: LD_VAR 0 15
13810: ARRAY
13811: PPUSH
13812: CALL_OW 313
13816: ST_TO_ADDR
// mechanicOutside_list = FilterUnitsInArea ( repairArea , [ [ f_side , side ] , [ f_class , 3 ] ] ) ;
13817: LD_ADDR_VAR 0 36
13821: PUSH
13822: LD_VAR 0 11
13826: PPUSH
13827: LD_INT 22
13829: PUSH
13830: LD_VAR 0 2
13834: PUSH
13835: EMPTY
13836: LIST
13837: LIST
13838: PUSH
13839: LD_INT 25
13841: PUSH
13842: LD_INT 3
13844: PUSH
13845: EMPTY
13846: LIST
13847: LIST
13848: PUSH
13849: EMPTY
13850: LIST
13851: LIST
13852: PPUSH
13853: CALL_OW 70
13857: ST_TO_ADDR
// if damageVehicle_list > 0 then
13858: LD_VAR 0 33
13862: PUSH
13863: LD_INT 0
13865: GREATER
13866: IFFALSE 13939
// begin ComMoveToArea ( damageVehicle_list , repairArea ) ;
13868: LD_VAR 0 33
13872: PPUSH
13873: LD_VAR 0 11
13877: PPUSH
13878: CALL_OW 113
// for i in damageVehicle_list do
13882: LD_ADDR_VAR 0 15
13886: PUSH
13887: LD_VAR 0 33
13891: PUSH
13892: FOR_IN
13893: IFFALSE 13937
// begin for j in mechanicInside_list do
13895: LD_ADDR_VAR 0 16
13899: PUSH
13900: LD_VAR 0 35
13904: PUSH
13905: FOR_IN
13906: IFFALSE 13933
// begin AddComExitVehicle ( j ) ;
13908: LD_VAR 0 16
13912: PPUSH
13913: CALL_OW 181
// AddComRepairVehicle ( j , i ) ;
13917: LD_VAR 0 16
13921: PPUSH
13922: LD_VAR 0 15
13926: PPUSH
13927: CALL_OW 189
// end ;
13931: GO 13905
13933: POP
13934: POP
// end ;
13935: GO 13892
13937: POP
13938: POP
// end ; if emptyVehicle_list > 0 then
13939: LD_VAR 0 34
13943: PUSH
13944: LD_INT 0
13946: GREATER
13947: IFFALSE 13997
// begin for i in emptyVehicle_list do
13949: LD_ADDR_VAR 0 15
13953: PUSH
13954: LD_VAR 0 34
13958: PUSH
13959: FOR_IN
13960: IFFALSE 13995
// begin for j in mechanicOutside_list do
13962: LD_ADDR_VAR 0 16
13966: PUSH
13967: LD_VAR 0 36
13971: PUSH
13972: FOR_IN
13973: IFFALSE 13991
// begin AddComEnterUnit ( j , i ) ;
13975: LD_VAR 0 16
13979: PPUSH
13980: LD_VAR 0 15
13984: PPUSH
13985: CALL_OW 180
// end ;
13989: GO 13972
13991: POP
13992: POP
// end ;
13993: GO 13959
13995: POP
13996: POP
// end ; if vehicleOK_list > 0 then
13997: LD_VAR 0 32
14001: PUSH
14002: LD_INT 0
14004: GREATER
14005: IFFALSE 14043
// begin for i in vehicleOK_list do
14007: LD_ADDR_VAR 0 15
14011: PUSH
14012: LD_VAR 0 32
14016: PUSH
14017: FOR_IN
14018: IFFALSE 14041
// begin ComAgressiveMove ( i , targetX , targetY ) ;
14020: LD_VAR 0 15
14024: PPUSH
14025: LD_VAR 0 12
14029: PPUSH
14030: LD_VAR 0 13
14034: PPUSH
14035: CALL_OW 114
// end ;
14039: GO 14017
14041: POP
14042: POP
// end ; end until vehicle_list = 0 ;
14043: LD_VAR 0 31
14047: PUSH
14048: LD_INT 0
14050: EQUAL
14051: IFFALSE 13629
// end ;
14053: LD_VAR 0 14
14057: RET
// export function ReBuildBuildings ( side ) ; var i , j , damageUnits_list , engineerOK_list , test ; begin
14058: LD_INT 0
14060: PPUSH
14061: PPUSH
14062: PPUSH
14063: PPUSH
14064: PPUSH
14065: PPUSH
// damageUnits_list = FilterAllUnits ( [ [ f_side , side ] , [ f_type , unit_building ] ] ) ;
14066: LD_ADDR_VAR 0 5
14070: PUSH
14071: LD_INT 22
14073: PUSH
14074: LD_VAR 0 1
14078: PUSH
14079: EMPTY
14080: LIST
14081: LIST
14082: PUSH
14083: LD_INT 21
14085: PUSH
14086: LD_INT 3
14088: PUSH
14089: EMPTY
14090: LIST
14091: LIST
14092: PUSH
14093: EMPTY
14094: LIST
14095: LIST
14096: PPUSH
14097: CALL_OW 69
14101: ST_TO_ADDR
// engineerOK_list = FilterAllUnits ( [ [ f_side , side ] , [ f_class , 2 ] ] ) ;
14102: LD_ADDR_VAR 0 6
14106: PUSH
14107: LD_INT 22
14109: PUSH
14110: LD_VAR 0 1
14114: PUSH
14115: EMPTY
14116: LIST
14117: LIST
14118: PUSH
14119: LD_INT 25
14121: PUSH
14122: LD_INT 2
14124: PUSH
14125: EMPTY
14126: LIST
14127: LIST
14128: PUSH
14129: EMPTY
14130: LIST
14131: LIST
14132: PPUSH
14133: CALL_OW 69
14137: ST_TO_ADDR
// if buildInformation_list > 0 then
14138: LD_EXP 49
14142: PUSH
14143: LD_INT 0
14145: GREATER
14146: IFFALSE 14243
// begin for i = 1 to buildInformation_list do
14148: LD_ADDR_VAR 0 3
14152: PUSH
14153: DOUBLE
14154: LD_INT 1
14156: DEC
14157: ST_TO_ADDR
14158: LD_EXP 49
14162: PUSH
14163: FOR_TO
14164: IFFALSE 14241
// begin for j = 1 to engineerOK_list do
14166: LD_ADDR_VAR 0 4
14170: PUSH
14171: DOUBLE
14172: LD_INT 1
14174: DEC
14175: ST_TO_ADDR
14176: LD_VAR 0 6
14180: PUSH
14181: FOR_TO
14182: IFFALSE 14237
// begin AddComBuild ( engineerOK_list [ j ] , buildInformation_list [ 1 ] , buildInformation_list [ 2 ] , buildInformation_list [ 3 ] , buildInformation_list [ 4 ] ) ;
14184: LD_VAR 0 6
14188: PUSH
14189: LD_VAR 0 4
14193: ARRAY
14194: PPUSH
14195: LD_EXP 49
14199: PUSH
14200: LD_INT 1
14202: ARRAY
14203: PPUSH
14204: LD_EXP 49
14208: PUSH
14209: LD_INT 2
14211: ARRAY
14212: PPUSH
14213: LD_EXP 49
14217: PUSH
14218: LD_INT 3
14220: ARRAY
14221: PPUSH
14222: LD_EXP 49
14226: PUSH
14227: LD_INT 4
14229: ARRAY
14230: PPUSH
14231: CALL_OW 205
// end ;
14235: GO 14181
14237: POP
14238: POP
// end ;
14239: GO 14163
14241: POP
14242: POP
// end ; end ;
14243: LD_VAR 0 2
14247: RET
// export function EscapeFromBunkers ( side ) ; var i , inside_list ; begin
14248: LD_INT 0
14250: PPUSH
14251: PPUSH
14252: PPUSH
// inside_list = FilterAllUnits ( [ [ f_side , side ] , [ f_inside ] ] ) ;
14253: LD_ADDR_VAR 0 4
14257: PUSH
14258: LD_INT 22
14260: PUSH
14261: LD_VAR 0 1
14265: PUSH
14266: EMPTY
14267: LIST
14268: LIST
14269: PUSH
14270: LD_INT 54
14272: PUSH
14273: EMPTY
14274: LIST
14275: PUSH
14276: EMPTY
14277: LIST
14278: LIST
14279: PPUSH
14280: CALL_OW 69
14284: ST_TO_ADDR
// for i in inside_list do
14285: LD_ADDR_VAR 0 3
14289: PUSH
14290: LD_VAR 0 4
14294: PUSH
14295: FOR_IN
14296: IFFALSE 14309
// begin ComExitBuilding ( i ) ;
14298: LD_VAR 0 3
14302: PPUSH
14303: CALL_OW 122
// end ;
14307: GO 14295
14309: POP
14310: POP
// end ;
14311: LD_VAR 0 2
14315: RET
// export function ResAllTechs ( side ) ; var i , tech , cout ; begin
14316: LD_INT 0
14318: PPUSH
14319: PPUSH
14320: PPUSH
14321: PPUSH
// for i = 1 to 72 do
14322: LD_ADDR_VAR 0 3
14326: PUSH
14327: DOUBLE
14328: LD_INT 1
14330: DEC
14331: ST_TO_ADDR
14332: LD_INT 72
14334: PUSH
14335: FOR_TO
14336: IFFALSE 14377
// begin if GetTech ( i , side ) = state_enabled then
14338: LD_VAR 0 3
14342: PPUSH
14343: LD_VAR 0 1
14347: PPUSH
14348: CALL_OW 321
14352: PUSH
14353: LD_INT 1
14355: EQUAL
14356: IFFALSE 14375
// SetTech ( i , side , state_researched ) ;
14358: LD_VAR 0 3
14362: PPUSH
14363: LD_VAR 0 1
14367: PPUSH
14368: LD_INT 2
14370: PPUSH
14371: CALL_OW 322
// end ;
14375: GO 14335
14377: POP
14378: POP
// cout = cout + 1 ;
14379: LD_ADDR_VAR 0 5
14383: PUSH
14384: LD_VAR 0 5
14388: PUSH
14389: LD_INT 1
14391: PLUS
14392: ST_TO_ADDR
// Wait ( 0 0$01 ) ;
14393: LD_INT 35
14395: PPUSH
14396: CALL_OW 67
// end ;
14400: LD_VAR 0 2
14404: RET
// every 0 0$1 do
14405: GO 14407
14407: DISABLE
// begin ResAllTechs ( randomedColors [ 2 ] ) ;
14408: LD_EXP 51
14412: PUSH
14413: LD_INT 2
14415: ARRAY
14416: PPUSH
14417: CALL 14316 0 1
// ResAllTechs ( randomedColors [ 3 ] ) ;
14421: LD_EXP 51
14425: PUSH
14426: LD_INT 3
14428: ARRAY
14429: PPUSH
14430: CALL 14316 0 1
// end ; end_of_file
14434: END
// export Am1Depot , Am1Fab , Am1Lab , Am1Barrack , Am1ControlTower ; export Am2Depot , Am2Fab , Am2Lab , Am2Barrack , Am2ControlTower ; export Ru1Depot , Ru1Fab , Ru1Lab , Ru1Barrack ; export Ru2Depot , Ru2Fab , Ru2Lab , Ru2Barrack ; every 0 0$2 trigger ai_russian1 = 1 and ai_russian2 = 1 do
14435: LD_EXP 22
14439: PUSH
14440: LD_INT 1
14442: EQUAL
14443: PUSH
14444: LD_EXP 23
14448: PUSH
14449: LD_INT 1
14451: EQUAL
14452: AND
14453: IFFALSE 14492
14455: GO 14457
14457: DISABLE
// begin PlaceRussianAIBase1 ;
14458: CALL 17666 0 0
// PlaceRussianAIBase2 ;
14462: CALL 18385 0 0
// CreateDepositXY ( 12 , 4 , mat_oil ) ;
14466: LD_INT 12
14468: PPUSH
14469: LD_INT 4
14471: PPUSH
14472: LD_INT 2
14474: PPUSH
14475: CALL_OW 62
// CreateDepositXY ( 79 , 9 , mat_oil ) ;
14479: LD_INT 79
14481: PPUSH
14482: LD_INT 9
14484: PPUSH
14485: LD_INT 2
14487: PPUSH
14488: CALL_OW 62
// end ;
14492: END
// every 0 0$3 trigger ai_american1 = 1 and ai_american2 = 1 do
14493: LD_EXP 20
14497: PUSH
14498: LD_INT 1
14500: EQUAL
14501: PUSH
14502: LD_EXP 21
14506: PUSH
14507: LD_INT 1
14509: EQUAL
14510: AND
14511: IFFALSE 14576
14513: GO 14515
14515: DISABLE
// begin CreateDepositXY ( 117 , 82 , mat_oil ) ;
14516: LD_INT 117
14518: PPUSH
14519: LD_INT 82
14521: PPUSH
14522: LD_INT 2
14524: PPUSH
14525: CALL_OW 62
// CreateDepositXY ( 93 , 79 , mat_oil ) ;
14529: LD_INT 93
14531: PPUSH
14532: LD_INT 79
14534: PPUSH
14535: LD_INT 2
14537: PPUSH
14538: CALL_OW 62
// CreateDepositXY ( 81 , 150 , mat_oil ) ;
14542: LD_INT 81
14544: PPUSH
14545: LD_INT 150
14547: PPUSH
14548: LD_INT 2
14550: PPUSH
14551: CALL_OW 62
// CreateDepositXY ( 86 , 156 , mat_oil ) ;
14555: LD_INT 86
14557: PPUSH
14558: LD_INT 156
14560: PPUSH
14561: LD_INT 2
14563: PPUSH
14564: CALL_OW 62
// PlaceAmericanAIBase1 ;
14568: CALL 16389 0 0
// PlaceAmericanAIBase2 ;
14572: CALL 17057 0 0
// end ;
14576: END
// every 0 0$4 trigger ai_russian1 = 1 and ai_russian2 = 1 do var RussianTurret1_list , RussianTurret2_list , i , un ;
14577: LD_EXP 22
14581: PUSH
14582: LD_INT 1
14584: EQUAL
14585: PUSH
14586: LD_EXP 23
14590: PUSH
14591: LD_INT 1
14593: EQUAL
14594: AND
14595: IFFALSE 15302
14597: GO 14599
14599: DISABLE
14600: LD_INT 0
14602: PPUSH
14603: PPUSH
14604: PPUSH
14605: PPUSH
// begin MultiplayerRespawnInside ( randomedColors [ 2 ] , 3 , Ru1Depot , difficultyC , 2 , 4 ) ;
14606: LD_EXP 51
14610: PUSH
14611: LD_INT 2
14613: ARRAY
14614: PPUSH
14615: LD_INT 3
14617: PPUSH
14618: LD_EXP 64
14622: PPUSH
14623: LD_EXP 24
14627: PPUSH
14628: LD_INT 2
14630: PPUSH
14631: LD_INT 4
14633: PPUSH
14634: CALL 7281 0 6
// MultiplayerRespawnInside ( randomedColors [ 2 ] , 3 , Ru1Lab , difficultyC , 4 , 3 ) ;
14638: LD_EXP 51
14642: PUSH
14643: LD_INT 2
14645: ARRAY
14646: PPUSH
14647: LD_INT 3
14649: PPUSH
14650: LD_EXP 66
14654: PPUSH
14655: LD_EXP 24
14659: PPUSH
14660: LD_INT 4
14662: PPUSH
14663: LD_INT 3
14665: PPUSH
14666: CALL 7281 0 6
// MultiplayerRespawnInside ( randomedColors [ 2 ] , 3 , Ru1Fab , difficultyC , 3 , 4 ) ;
14670: LD_EXP 51
14674: PUSH
14675: LD_INT 2
14677: ARRAY
14678: PPUSH
14679: LD_INT 3
14681: PPUSH
14682: LD_EXP 65
14686: PPUSH
14687: LD_EXP 24
14691: PPUSH
14692: LD_INT 3
14694: PPUSH
14695: LD_INT 4
14697: PPUSH
14698: CALL 7281 0 6
// MultiplayerRespawnInside ( randomedColors [ 2 ] , 3 , Ru1Barrack , difficultyC , 1 , 4 ) ;
14702: LD_EXP 51
14706: PUSH
14707: LD_INT 2
14709: ARRAY
14710: PPUSH
14711: LD_INT 3
14713: PPUSH
14714: LD_EXP 67
14718: PPUSH
14719: LD_EXP 24
14723: PPUSH
14724: LD_INT 1
14726: PPUSH
14727: LD_INT 4
14729: PPUSH
14730: CALL 7281 0 6
// MultiplayerRespawnInside ( randomedColors [ 3 ] , 3 , Ru2Depot , difficultyC , 2 , 4 ) ;
14734: LD_EXP 51
14738: PUSH
14739: LD_INT 3
14741: ARRAY
14742: PPUSH
14743: LD_INT 3
14745: PPUSH
14746: LD_EXP 68
14750: PPUSH
14751: LD_EXP 24
14755: PPUSH
14756: LD_INT 2
14758: PPUSH
14759: LD_INT 4
14761: PPUSH
14762: CALL 7281 0 6
// MultiplayerRespawnInside ( randomedColors [ 3 ] , 3 , Ru2Lab , difficultyC , 4 , 3 ) ;
14766: LD_EXP 51
14770: PUSH
14771: LD_INT 3
14773: ARRAY
14774: PPUSH
14775: LD_INT 3
14777: PPUSH
14778: LD_EXP 70
14782: PPUSH
14783: LD_EXP 24
14787: PPUSH
14788: LD_INT 4
14790: PPUSH
14791: LD_INT 3
14793: PPUSH
14794: CALL 7281 0 6
// MultiplayerRespawnInside ( randomedColors [ 3 ] , 3 , Ru2Fab , difficultyC , 3 , 4 ) ;
14798: LD_EXP 51
14802: PUSH
14803: LD_INT 3
14805: ARRAY
14806: PPUSH
14807: LD_INT 3
14809: PPUSH
14810: LD_EXP 69
14814: PPUSH
14815: LD_EXP 24
14819: PPUSH
14820: LD_INT 3
14822: PPUSH
14823: LD_INT 4
14825: PPUSH
14826: CALL 7281 0 6
// MultiplayerRespawnInside ( randomedColors [ 3 ] , 3 , Ru2Barrack , difficultyC , 1 , 4 ) ;
14830: LD_EXP 51
14834: PUSH
14835: LD_INT 3
14837: ARRAY
14838: PPUSH
14839: LD_INT 3
14841: PPUSH
14842: LD_EXP 71
14846: PPUSH
14847: LD_EXP 24
14851: PPUSH
14852: LD_INT 1
14854: PPUSH
14855: LD_INT 4
14857: PPUSH
14858: CALL 7281 0 6
// uc_side = randomedColors [ 2 ] ;
14862: LD_ADDR_OWVAR 20
14866: PUSH
14867: LD_EXP 51
14871: PUSH
14872: LD_INT 2
14874: ARRAY
14875: ST_TO_ADDR
// uc_nation = 3 ;
14876: LD_ADDR_OWVAR 21
14880: PUSH
14881: LD_INT 3
14883: ST_TO_ADDR
// RussianTurret1_list := FilterAllUnits ( [ [ f_side , randomedColors [ 2 ] ] , [ f_btype , b_bunker ] ] ) ;
14884: LD_ADDR_VAR 0 1
14888: PUSH
14889: LD_INT 22
14891: PUSH
14892: LD_EXP 51
14896: PUSH
14897: LD_INT 2
14899: ARRAY
14900: PUSH
14901: EMPTY
14902: LIST
14903: LIST
14904: PUSH
14905: LD_INT 30
14907: PUSH
14908: LD_INT 32
14910: PUSH
14911: EMPTY
14912: LIST
14913: LIST
14914: PUSH
14915: EMPTY
14916: LIST
14917: LIST
14918: PPUSH
14919: CALL_OW 69
14923: ST_TO_ADDR
// for i in RussianTurret1_list do
14924: LD_ADDR_VAR 0 3
14928: PUSH
14929: LD_VAR 0 1
14933: PUSH
14934: FOR_IN
14935: IFFALSE 15080
// begin if IsInUnit ( i ) = 0 then
14937: LD_VAR 0 3
14941: PPUSH
14942: CALL_OW 310
14946: PUSH
14947: LD_INT 0
14949: EQUAL
14950: IFFALSE 15078
// begin hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
14952: LD_ADDR_OWVAR 29
14956: PUSH
14957: LD_INT 9
14959: PPUSH
14960: LD_INT 11
14962: PPUSH
14963: CALL_OW 12
14967: PUSH
14968: LD_INT 10
14970: PPUSH
14971: LD_INT 12
14973: PPUSH
14974: CALL_OW 12
14978: PUSH
14979: EMPTY
14980: LIST
14981: LIST
14982: ST_TO_ADDR
// hc_skills = [ difficultyC , difficultyC , difficultyC , difficultyC ] ;
14983: LD_ADDR_OWVAR 31
14987: PUSH
14988: LD_EXP 24
14992: PUSH
14993: LD_EXP 24
14997: PUSH
14998: LD_EXP 24
15002: PUSH
15003: LD_EXP 24
15007: PUSH
15008: EMPTY
15009: LIST
15010: LIST
15011: LIST
15012: LIST
15013: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
15014: LD_ADDR_OWVAR 27
15018: PUSH
15019: LD_INT 1
15021: PPUSH
15022: LD_INT 2
15024: PPUSH
15025: CALL_OW 12
15029: ST_TO_ADDR
// hc_class = 1 ;
15030: LD_ADDR_OWVAR 28
15034: PUSH
15035: LD_INT 1
15037: ST_TO_ADDR
// hc_gallery =  ;
15038: LD_ADDR_OWVAR 33
15042: PUSH
15043: LD_STRING 
15045: ST_TO_ADDR
// hc_name =  ;
15046: LD_ADDR_OWVAR 26
15050: PUSH
15051: LD_STRING 
15053: ST_TO_ADDR
// un := CreateHuman ;
15054: LD_ADDR_VAR 0 4
15058: PUSH
15059: CALL_OW 44
15063: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
15064: LD_VAR 0 4
15068: PPUSH
15069: LD_VAR 0 3
15073: PPUSH
15074: CALL_OW 52
// end ; end ;
15078: GO 14934
15080: POP
15081: POP
// RussianTurret2_list := FilterAllUnits ( [ [ f_side , randomedColors [ 3 ] ] , [ f_btype , b_bunker ] ] ) ;
15082: LD_ADDR_VAR 0 2
15086: PUSH
15087: LD_INT 22
15089: PUSH
15090: LD_EXP 51
15094: PUSH
15095: LD_INT 3
15097: ARRAY
15098: PUSH
15099: EMPTY
15100: LIST
15101: LIST
15102: PUSH
15103: LD_INT 30
15105: PUSH
15106: LD_INT 32
15108: PUSH
15109: EMPTY
15110: LIST
15111: LIST
15112: PUSH
15113: EMPTY
15114: LIST
15115: LIST
15116: PPUSH
15117: CALL_OW 69
15121: ST_TO_ADDR
// uc_side = randomedColors [ 3 ] ;
15122: LD_ADDR_OWVAR 20
15126: PUSH
15127: LD_EXP 51
15131: PUSH
15132: LD_INT 3
15134: ARRAY
15135: ST_TO_ADDR
// uc_nation = 3 ;
15136: LD_ADDR_OWVAR 21
15140: PUSH
15141: LD_INT 3
15143: ST_TO_ADDR
// for i in RussianTurret2_list do
15144: LD_ADDR_VAR 0 3
15148: PUSH
15149: LD_VAR 0 2
15153: PUSH
15154: FOR_IN
15155: IFFALSE 15300
// begin if IsInUnit ( i ) = 0 then
15157: LD_VAR 0 3
15161: PPUSH
15162: CALL_OW 310
15166: PUSH
15167: LD_INT 0
15169: EQUAL
15170: IFFALSE 15298
// begin hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
15172: LD_ADDR_OWVAR 29
15176: PUSH
15177: LD_INT 9
15179: PPUSH
15180: LD_INT 11
15182: PPUSH
15183: CALL_OW 12
15187: PUSH
15188: LD_INT 10
15190: PPUSH
15191: LD_INT 12
15193: PPUSH
15194: CALL_OW 12
15198: PUSH
15199: EMPTY
15200: LIST
15201: LIST
15202: ST_TO_ADDR
// hc_skills = [ difficultyC , difficultyC , difficultyC , difficultyC ] ;
15203: LD_ADDR_OWVAR 31
15207: PUSH
15208: LD_EXP 24
15212: PUSH
15213: LD_EXP 24
15217: PUSH
15218: LD_EXP 24
15222: PUSH
15223: LD_EXP 24
15227: PUSH
15228: EMPTY
15229: LIST
15230: LIST
15231: LIST
15232: LIST
15233: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
15234: LD_ADDR_OWVAR 27
15238: PUSH
15239: LD_INT 1
15241: PPUSH
15242: LD_INT 2
15244: PPUSH
15245: CALL_OW 12
15249: ST_TO_ADDR
// hc_class = 1 ;
15250: LD_ADDR_OWVAR 28
15254: PUSH
15255: LD_INT 1
15257: ST_TO_ADDR
// hc_gallery =  ;
15258: LD_ADDR_OWVAR 33
15262: PUSH
15263: LD_STRING 
15265: ST_TO_ADDR
// hc_name =  ;
15266: LD_ADDR_OWVAR 26
15270: PUSH
15271: LD_STRING 
15273: ST_TO_ADDR
// un := CreateHuman ;
15274: LD_ADDR_VAR 0 4
15278: PUSH
15279: CALL_OW 44
15283: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
15284: LD_VAR 0 4
15288: PPUSH
15289: LD_VAR 0 3
15293: PPUSH
15294: CALL_OW 52
// end ; end ;
15298: GO 15154
15300: POP
15301: POP
// end ;
15302: PPOPN 4
15304: END
// export Am1Controlers , Am2Controlers ; every 0 0$4 trigger ai_american1 = 1 and ai_american2 = 1 do var AmericanTurret1_list , AmericanTurret2_list , i , un ;
15305: LD_EXP 20
15309: PUSH
15310: LD_INT 1
15312: EQUAL
15313: PUSH
15314: LD_EXP 21
15318: PUSH
15319: LD_INT 1
15321: EQUAL
15322: AND
15323: IFFALSE 16386
15325: GO 15327
15327: DISABLE
15328: LD_INT 0
15330: PPUSH
15331: PPUSH
15332: PPUSH
15333: PPUSH
// begin MultiplayerRespawnInside ( randomedColors [ 2 ] , 1 , Am1Depot , difficultyC , 2 , 4 ) ;
15334: LD_EXP 51
15338: PUSH
15339: LD_INT 2
15341: ARRAY
15342: PPUSH
15343: LD_INT 1
15345: PPUSH
15346: LD_EXP 54
15350: PPUSH
15351: LD_EXP 24
15355: PPUSH
15356: LD_INT 2
15358: PPUSH
15359: LD_INT 4
15361: PPUSH
15362: CALL 7281 0 6
// MultiplayerRespawnInside ( randomedColors [ 2 ] , 1 , Am1Lab , difficultyC , 4 , 3 ) ;
15366: LD_EXP 51
15370: PUSH
15371: LD_INT 2
15373: ARRAY
15374: PPUSH
15375: LD_INT 1
15377: PPUSH
15378: LD_EXP 56
15382: PPUSH
15383: LD_EXP 24
15387: PPUSH
15388: LD_INT 4
15390: PPUSH
15391: LD_INT 3
15393: PPUSH
15394: CALL 7281 0 6
// MultiplayerRespawnInside ( randomedColors [ 2 ] , 1 , Am1Fab , difficultyC , 3 , 4 ) ;
15398: LD_EXP 51
15402: PUSH
15403: LD_INT 2
15405: ARRAY
15406: PPUSH
15407: LD_INT 1
15409: PPUSH
15410: LD_EXP 55
15414: PPUSH
15415: LD_EXP 24
15419: PPUSH
15420: LD_INT 3
15422: PPUSH
15423: LD_INT 4
15425: PPUSH
15426: CALL 7281 0 6
// MultiplayerRespawnInside ( randomedColors [ 2 ] , 1 , Am1Barrack , difficultyC , 1 , 4 ) ;
15430: LD_EXP 51
15434: PUSH
15435: LD_INT 2
15437: ARRAY
15438: PPUSH
15439: LD_INT 1
15441: PPUSH
15442: LD_EXP 57
15446: PPUSH
15447: LD_EXP 24
15451: PPUSH
15452: LD_INT 1
15454: PPUSH
15455: LD_INT 4
15457: PPUSH
15458: CALL 7281 0 6
// for i = 1 to 3 do
15462: LD_ADDR_VAR 0 3
15466: PUSH
15467: DOUBLE
15468: LD_INT 1
15470: DEC
15471: ST_TO_ADDR
15472: LD_INT 3
15474: PUSH
15475: FOR_TO
15476: IFFALSE 15638
// begin uc_side = randomedColors [ 2 ] ;
15478: LD_ADDR_OWVAR 20
15482: PUSH
15483: LD_EXP 51
15487: PUSH
15488: LD_INT 2
15490: ARRAY
15491: ST_TO_ADDR
// uc_nation = 1 ;
15492: LD_ADDR_OWVAR 21
15496: PUSH
15497: LD_INT 1
15499: ST_TO_ADDR
// hc_gallery =  ;
15500: LD_ADDR_OWVAR 33
15504: PUSH
15505: LD_STRING 
15507: ST_TO_ADDR
// hc_name =  ;
15508: LD_ADDR_OWVAR 26
15512: PUSH
15513: LD_STRING 
15515: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
15516: LD_ADDR_OWVAR 29
15520: PUSH
15521: LD_INT 9
15523: PPUSH
15524: LD_INT 11
15526: PPUSH
15527: CALL_OW 12
15531: PUSH
15532: LD_INT 10
15534: PPUSH
15535: LD_INT 12
15537: PPUSH
15538: CALL_OW 12
15542: PUSH
15543: EMPTY
15544: LIST
15545: LIST
15546: ST_TO_ADDR
// hc_skills = [ 0 , 0 , difficultyC , 0 ] ;
15547: LD_ADDR_OWVAR 31
15551: PUSH
15552: LD_INT 0
15554: PUSH
15555: LD_INT 0
15557: PUSH
15558: LD_EXP 24
15562: PUSH
15563: LD_INT 0
15565: PUSH
15566: EMPTY
15567: LIST
15568: LIST
15569: LIST
15570: LIST
15571: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
15572: LD_ADDR_OWVAR 27
15576: PUSH
15577: LD_INT 1
15579: PPUSH
15580: LD_INT 2
15582: PPUSH
15583: CALL_OW 12
15587: ST_TO_ADDR
// hc_class = 3 ;
15588: LD_ADDR_OWVAR 28
15592: PUSH
15593: LD_INT 3
15595: ST_TO_ADDR
// un = CreateHuman ;
15596: LD_ADDR_VAR 0 4
15600: PUSH
15601: CALL_OW 44
15605: ST_TO_ADDR
// PlaceHumanInUnit ( un , Am1ControlTower ) ;
15606: LD_VAR 0 4
15610: PPUSH
15611: LD_EXP 58
15615: PPUSH
15616: CALL_OW 52
// Am1Controlers = Am1Controlers ^ un ;
15620: LD_ADDR_EXP 72
15624: PUSH
15625: LD_EXP 72
15629: PUSH
15630: LD_VAR 0 4
15634: ADD
15635: ST_TO_ADDR
// end ;
15636: GO 15475
15638: POP
15639: POP
// MultiplayerRespawnInside ( randomedColors [ 3 ] , 1 , Am2Depot , difficultyC , 2 , 4 ) ;
15640: LD_EXP 51
15644: PUSH
15645: LD_INT 3
15647: ARRAY
15648: PPUSH
15649: LD_INT 1
15651: PPUSH
15652: LD_EXP 59
15656: PPUSH
15657: LD_EXP 24
15661: PPUSH
15662: LD_INT 2
15664: PPUSH
15665: LD_INT 4
15667: PPUSH
15668: CALL 7281 0 6
// MultiplayerRespawnInside ( randomedColors [ 3 ] , 1 , Am2Lab , difficultyC , 4 , 3 ) ;
15672: LD_EXP 51
15676: PUSH
15677: LD_INT 3
15679: ARRAY
15680: PPUSH
15681: LD_INT 1
15683: PPUSH
15684: LD_EXP 61
15688: PPUSH
15689: LD_EXP 24
15693: PPUSH
15694: LD_INT 4
15696: PPUSH
15697: LD_INT 3
15699: PPUSH
15700: CALL 7281 0 6
// MultiplayerRespawnInside ( randomedColors [ 3 ] , 1 , Am2Fab , difficultyC , 3 , 4 ) ;
15704: LD_EXP 51
15708: PUSH
15709: LD_INT 3
15711: ARRAY
15712: PPUSH
15713: LD_INT 1
15715: PPUSH
15716: LD_EXP 60
15720: PPUSH
15721: LD_EXP 24
15725: PPUSH
15726: LD_INT 3
15728: PPUSH
15729: LD_INT 4
15731: PPUSH
15732: CALL 7281 0 6
// MultiplayerRespawnInside ( randomedColors [ 3 ] , 1 , Am2Barrack , difficultyC , 1 , 4 ) ;
15736: LD_EXP 51
15740: PUSH
15741: LD_INT 3
15743: ARRAY
15744: PPUSH
15745: LD_INT 1
15747: PPUSH
15748: LD_EXP 62
15752: PPUSH
15753: LD_EXP 24
15757: PPUSH
15758: LD_INT 1
15760: PPUSH
15761: LD_INT 4
15763: PPUSH
15764: CALL 7281 0 6
// for i = 1 to 3 do
15768: LD_ADDR_VAR 0 3
15772: PUSH
15773: DOUBLE
15774: LD_INT 1
15776: DEC
15777: ST_TO_ADDR
15778: LD_INT 3
15780: PUSH
15781: FOR_TO
15782: IFFALSE 15944
// begin uc_side = randomedColors [ 3 ] ;
15784: LD_ADDR_OWVAR 20
15788: PUSH
15789: LD_EXP 51
15793: PUSH
15794: LD_INT 3
15796: ARRAY
15797: ST_TO_ADDR
// uc_nation = 1 ;
15798: LD_ADDR_OWVAR 21
15802: PUSH
15803: LD_INT 1
15805: ST_TO_ADDR
// hc_gallery =  ;
15806: LD_ADDR_OWVAR 33
15810: PUSH
15811: LD_STRING 
15813: ST_TO_ADDR
// hc_name =  ;
15814: LD_ADDR_OWVAR 26
15818: PUSH
15819: LD_STRING 
15821: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
15822: LD_ADDR_OWVAR 29
15826: PUSH
15827: LD_INT 9
15829: PPUSH
15830: LD_INT 11
15832: PPUSH
15833: CALL_OW 12
15837: PUSH
15838: LD_INT 10
15840: PPUSH
15841: LD_INT 12
15843: PPUSH
15844: CALL_OW 12
15848: PUSH
15849: EMPTY
15850: LIST
15851: LIST
15852: ST_TO_ADDR
// hc_skills = [ 0 , 0 , difficultyC , 0 ] ;
15853: LD_ADDR_OWVAR 31
15857: PUSH
15858: LD_INT 0
15860: PUSH
15861: LD_INT 0
15863: PUSH
15864: LD_EXP 24
15868: PUSH
15869: LD_INT 0
15871: PUSH
15872: EMPTY
15873: LIST
15874: LIST
15875: LIST
15876: LIST
15877: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
15878: LD_ADDR_OWVAR 27
15882: PUSH
15883: LD_INT 1
15885: PPUSH
15886: LD_INT 2
15888: PPUSH
15889: CALL_OW 12
15893: ST_TO_ADDR
// hc_class = 3 ;
15894: LD_ADDR_OWVAR 28
15898: PUSH
15899: LD_INT 3
15901: ST_TO_ADDR
// un = CreateHuman ;
15902: LD_ADDR_VAR 0 4
15906: PUSH
15907: CALL_OW 44
15911: ST_TO_ADDR
// PlaceHumanInUnit ( un , Am2ControlTower ) ;
15912: LD_VAR 0 4
15916: PPUSH
15917: LD_EXP 63
15921: PPUSH
15922: CALL_OW 52
// Am2Controlers = Am2Controlers ^ un ;
15926: LD_ADDR_EXP 73
15930: PUSH
15931: LD_EXP 73
15935: PUSH
15936: LD_VAR 0 4
15940: ADD
15941: ST_TO_ADDR
// end ;
15942: GO 15781
15944: POP
15945: POP
// uc_side = randomedColors [ 2 ] ;
15946: LD_ADDR_OWVAR 20
15950: PUSH
15951: LD_EXP 51
15955: PUSH
15956: LD_INT 2
15958: ARRAY
15959: ST_TO_ADDR
// uc_nation = 1 ;
15960: LD_ADDR_OWVAR 21
15964: PUSH
15965: LD_INT 1
15967: ST_TO_ADDR
// AmericanTurret1_list := FilterAllUnits ( [ [ f_side , randomedColors [ 2 ] ] , [ f_btype , b_bunker ] ] ) ;
15968: LD_ADDR_VAR 0 1
15972: PUSH
15973: LD_INT 22
15975: PUSH
15976: LD_EXP 51
15980: PUSH
15981: LD_INT 2
15983: ARRAY
15984: PUSH
15985: EMPTY
15986: LIST
15987: LIST
15988: PUSH
15989: LD_INT 30
15991: PUSH
15992: LD_INT 32
15994: PUSH
15995: EMPTY
15996: LIST
15997: LIST
15998: PUSH
15999: EMPTY
16000: LIST
16001: LIST
16002: PPUSH
16003: CALL_OW 69
16007: ST_TO_ADDR
// for i in AmericanTurret1_list do
16008: LD_ADDR_VAR 0 3
16012: PUSH
16013: LD_VAR 0 1
16017: PUSH
16018: FOR_IN
16019: IFFALSE 16164
// begin if IsInUnit ( i ) = 0 then
16021: LD_VAR 0 3
16025: PPUSH
16026: CALL_OW 310
16030: PUSH
16031: LD_INT 0
16033: EQUAL
16034: IFFALSE 16162
// begin hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
16036: LD_ADDR_OWVAR 29
16040: PUSH
16041: LD_INT 9
16043: PPUSH
16044: LD_INT 11
16046: PPUSH
16047: CALL_OW 12
16051: PUSH
16052: LD_INT 10
16054: PPUSH
16055: LD_INT 12
16057: PPUSH
16058: CALL_OW 12
16062: PUSH
16063: EMPTY
16064: LIST
16065: LIST
16066: ST_TO_ADDR
// hc_skills = [ difficultyC , difficultyC , difficultyC , difficultyC ] ;
16067: LD_ADDR_OWVAR 31
16071: PUSH
16072: LD_EXP 24
16076: PUSH
16077: LD_EXP 24
16081: PUSH
16082: LD_EXP 24
16086: PUSH
16087: LD_EXP 24
16091: PUSH
16092: EMPTY
16093: LIST
16094: LIST
16095: LIST
16096: LIST
16097: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
16098: LD_ADDR_OWVAR 27
16102: PUSH
16103: LD_INT 1
16105: PPUSH
16106: LD_INT 2
16108: PPUSH
16109: CALL_OW 12
16113: ST_TO_ADDR
// hc_class = 1 ;
16114: LD_ADDR_OWVAR 28
16118: PUSH
16119: LD_INT 1
16121: ST_TO_ADDR
// hc_gallery =  ;
16122: LD_ADDR_OWVAR 33
16126: PUSH
16127: LD_STRING 
16129: ST_TO_ADDR
// hc_name =  ;
16130: LD_ADDR_OWVAR 26
16134: PUSH
16135: LD_STRING 
16137: ST_TO_ADDR
// un := CreateHuman ;
16138: LD_ADDR_VAR 0 4
16142: PUSH
16143: CALL_OW 44
16147: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
16148: LD_VAR 0 4
16152: PPUSH
16153: LD_VAR 0 3
16157: PPUSH
16158: CALL_OW 52
// end ; end ;
16162: GO 16018
16164: POP
16165: POP
// uc_side = randomedColors [ 3 ] ;
16166: LD_ADDR_OWVAR 20
16170: PUSH
16171: LD_EXP 51
16175: PUSH
16176: LD_INT 3
16178: ARRAY
16179: ST_TO_ADDR
// uc_nation = 1 ;
16180: LD_ADDR_OWVAR 21
16184: PUSH
16185: LD_INT 1
16187: ST_TO_ADDR
// AmericanTurret2_list := FilterAllUnits ( [ [ f_side , randomedColors [ 3 ] ] , [ f_btype , b_bunker ] ] ) ;
16188: LD_ADDR_VAR 0 2
16192: PUSH
16193: LD_INT 22
16195: PUSH
16196: LD_EXP 51
16200: PUSH
16201: LD_INT 3
16203: ARRAY
16204: PUSH
16205: EMPTY
16206: LIST
16207: LIST
16208: PUSH
16209: LD_INT 30
16211: PUSH
16212: LD_INT 32
16214: PUSH
16215: EMPTY
16216: LIST
16217: LIST
16218: PUSH
16219: EMPTY
16220: LIST
16221: LIST
16222: PPUSH
16223: CALL_OW 69
16227: ST_TO_ADDR
// for i in AmericanTurret2_list do
16228: LD_ADDR_VAR 0 3
16232: PUSH
16233: LD_VAR 0 2
16237: PUSH
16238: FOR_IN
16239: IFFALSE 16384
// begin if IsInUnit ( i ) = 0 then
16241: LD_VAR 0 3
16245: PPUSH
16246: CALL_OW 310
16250: PUSH
16251: LD_INT 0
16253: EQUAL
16254: IFFALSE 16382
// begin hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
16256: LD_ADDR_OWVAR 29
16260: PUSH
16261: LD_INT 9
16263: PPUSH
16264: LD_INT 11
16266: PPUSH
16267: CALL_OW 12
16271: PUSH
16272: LD_INT 10
16274: PPUSH
16275: LD_INT 12
16277: PPUSH
16278: CALL_OW 12
16282: PUSH
16283: EMPTY
16284: LIST
16285: LIST
16286: ST_TO_ADDR
// hc_skills = [ difficultyC , difficultyC , difficultyC , difficultyC ] ;
16287: LD_ADDR_OWVAR 31
16291: PUSH
16292: LD_EXP 24
16296: PUSH
16297: LD_EXP 24
16301: PUSH
16302: LD_EXP 24
16306: PUSH
16307: LD_EXP 24
16311: PUSH
16312: EMPTY
16313: LIST
16314: LIST
16315: LIST
16316: LIST
16317: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
16318: LD_ADDR_OWVAR 27
16322: PUSH
16323: LD_INT 1
16325: PPUSH
16326: LD_INT 2
16328: PPUSH
16329: CALL_OW 12
16333: ST_TO_ADDR
// hc_class = 1 ;
16334: LD_ADDR_OWVAR 28
16338: PUSH
16339: LD_INT 1
16341: ST_TO_ADDR
// hc_gallery =  ;
16342: LD_ADDR_OWVAR 33
16346: PUSH
16347: LD_STRING 
16349: ST_TO_ADDR
// hc_name =  ;
16350: LD_ADDR_OWVAR 26
16354: PUSH
16355: LD_STRING 
16357: ST_TO_ADDR
// un := CreateHuman ;
16358: LD_ADDR_VAR 0 4
16362: PUSH
16363: CALL_OW 44
16367: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
16368: LD_VAR 0 4
16372: PPUSH
16373: LD_VAR 0 3
16377: PPUSH
16378: CALL_OW 52
// end ; end ;
16382: GO 16238
16384: POP
16385: POP
// end ;
16386: PPOPN 4
16388: END
// export function PlaceAmericanAIBase1 ; var turret_list , weapon , i ; begin
16389: LD_INT 0
16391: PPUSH
16392: PPUSH
16393: PPUSH
16394: PPUSH
// uc_nation = 1 ;
16395: LD_ADDR_OWVAR 21
16399: PUSH
16400: LD_INT 1
16402: ST_TO_ADDR
// uc_side = randomedColors [ 2 ] ;
16403: LD_ADDR_OWVAR 20
16407: PUSH
16408: LD_EXP 51
16412: PUSH
16413: LD_INT 2
16415: ARRAY
16416: ST_TO_ADDR
// bc_type = 1 ;
16417: LD_ADDR_OWVAR 42
16421: PUSH
16422: LD_INT 1
16424: ST_TO_ADDR
// bc_level = DifficultyC ;
16425: LD_ADDR_OWVAR 43
16429: PUSH
16430: LD_EXP 24
16434: ST_TO_ADDR
// Am1Depot = CreateAndPlaceBuildingXYD ( 24 , 5 , 2 ) ;
16435: LD_ADDR_EXP 54
16439: PUSH
16440: LD_INT 24
16442: PPUSH
16443: LD_INT 5
16445: PPUSH
16446: LD_INT 2
16448: PPUSH
16449: CALL_OW 47
16453: ST_TO_ADDR
// SetResourceType ( GetBase ( Am1Depot ) , mat_cans , 20000 [ mat_cans ] ) ;
16454: LD_EXP 54
16458: PPUSH
16459: CALL_OW 274
16463: PPUSH
16464: LD_INT 1
16466: PPUSH
16467: LD_INT 20000
16469: PUSH
16470: LD_INT 1
16472: ARRAY
16473: PPUSH
16474: CALL_OW 277
// SetResourceType ( GetBase ( Am1Depot ) , 2 , 5000 ) ;
16478: LD_EXP 54
16482: PPUSH
16483: CALL_OW 274
16487: PPUSH
16488: LD_INT 2
16490: PPUSH
16491: LD_INT 5000
16493: PPUSH
16494: CALL_OW 277
// SetResourceType ( GetBase ( Am1Depot ) , 3 , 5000 ) ;
16498: LD_EXP 54
16502: PPUSH
16503: CALL_OW 274
16507: PPUSH
16508: LD_INT 3
16510: PPUSH
16511: LD_INT 5000
16513: PPUSH
16514: CALL_OW 277
// bc_type = 5 ;
16518: LD_ADDR_OWVAR 42
16522: PUSH
16523: LD_INT 5
16525: ST_TO_ADDR
// Am1Barrack = CreateAndPlaceBuildingXYD ( 36 , 21 , 0 ) ;
16526: LD_ADDR_EXP 57
16530: PUSH
16531: LD_INT 36
16533: PPUSH
16534: LD_INT 21
16536: PPUSH
16537: LD_INT 0
16539: PPUSH
16540: CALL_OW 47
16544: ST_TO_ADDR
// bc_type = 32 ;
16545: LD_ADDR_OWVAR 42
16549: PUSH
16550: LD_INT 32
16552: ST_TO_ADDR
// CreateAndPlaceBuildingXYD ( 33 , 23 , 5 ) ;
16553: LD_INT 33
16555: PPUSH
16556: LD_INT 23
16558: PPUSH
16559: LD_INT 5
16561: PPUSH
16562: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 23 , 19 , 0 ) ;
16566: LD_INT 23
16568: PPUSH
16569: LD_INT 19
16571: PPUSH
16572: LD_INT 0
16574: PPUSH
16575: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 20 , 17 , 0 ) ;
16579: LD_INT 20
16581: PPUSH
16582: LD_INT 17
16584: PPUSH
16585: LD_INT 0
16587: PPUSH
16588: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 14 , 13 , 0 ) ;
16592: LD_INT 14
16594: PPUSH
16595: LD_INT 13
16597: PPUSH
16598: LD_INT 0
16600: PPUSH
16601: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 40 , 4 , 4 ) ;
16605: LD_INT 40
16607: PPUSH
16608: LD_INT 4
16610: PPUSH
16611: LD_INT 4
16613: PPUSH
16614: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 42 , 11 , 1 ) ;
16618: LD_INT 42
16620: PPUSH
16621: LD_INT 11
16623: PPUSH
16624: LD_INT 1
16626: PPUSH
16627: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 44 , 23 , 5 ) ;
16631: LD_INT 44
16633: PPUSH
16634: LD_INT 23
16636: PPUSH
16637: LD_INT 5
16639: PPUSH
16640: CALL_OW 47
// bc_type = b_lab ;
16644: LD_ADDR_OWVAR 42
16648: PUSH
16649: LD_INT 6
16651: ST_TO_ADDR
// bc_kind1 = b_lab_weapon ;
16652: LD_ADDR_OWVAR 44
16656: PUSH
16657: LD_INT 10
16659: ST_TO_ADDR
// bc_kind2 = b_lab_opto ;
16660: LD_ADDR_OWVAR 45
16664: PUSH
16665: LD_INT 15
16667: ST_TO_ADDR
// Am1Lab = CreateAndPlaceBuildingXYD ( 18 , 4 , 2 ) ;
16668: LD_ADDR_EXP 56
16672: PUSH
16673: LD_INT 18
16675: PPUSH
16676: LD_INT 4
16678: PPUSH
16679: LD_INT 2
16681: PPUSH
16682: CALL_OW 47
16686: ST_TO_ADDR
// bc_type = 3 ;
16687: LD_ADDR_OWVAR 42
16691: PUSH
16692: LD_INT 3
16694: ST_TO_ADDR
// Am1Fab = CreateAndPlaceBuildingXYD ( 31 , 6 , 2 ) ;
16695: LD_ADDR_EXP 55
16699: PUSH
16700: LD_INT 31
16702: PPUSH
16703: LD_INT 6
16705: PPUSH
16706: LD_INT 2
16708: PPUSH
16709: CALL_OW 47
16713: ST_TO_ADDR
// bc_type = 17 ;
16714: LD_ADDR_OWVAR 42
16718: PUSH
16719: LD_INT 17
16721: ST_TO_ADDR
// CreateAndPlaceBuildingXYD ( 27 , 2 , 2 ) ;
16722: LD_INT 27
16724: PPUSH
16725: LD_INT 2
16727: PPUSH
16728: LD_INT 2
16730: PPUSH
16731: CALL_OW 47
// bc_type = 19 ;
16735: LD_ADDR_OWVAR 42
16739: PUSH
16740: LD_INT 19
16742: ST_TO_ADDR
// CreateAndPlaceBuildingXYD ( 31 , 3 , 3 ) ;
16743: LD_INT 31
16745: PPUSH
16746: LD_INT 3
16748: PPUSH
16749: LD_INT 3
16751: PPUSH
16752: CALL_OW 47
// bc_type = 16 ;
16756: LD_ADDR_OWVAR 42
16760: PUSH
16761: LD_INT 16
16763: ST_TO_ADDR
// CreateAndPlaceBuildingXYD ( 28 , 6 , 1 ) ;
16764: LD_INT 28
16766: PPUSH
16767: LD_INT 6
16769: PPUSH
16770: LD_INT 1
16772: PPUSH
16773: CALL_OW 47
// bc_type = 20 ;
16777: LD_ADDR_OWVAR 42
16781: PUSH
16782: LD_INT 20
16784: ST_TO_ADDR
// CreateAndPlaceBuildingXYD ( 35 , 6 , 4 ) ;
16785: LD_INT 35
16787: PPUSH
16788: LD_INT 6
16790: PPUSH
16791: LD_INT 4
16793: PPUSH
16794: CALL_OW 47
// bc_type = 27 ;
16798: LD_ADDR_OWVAR 42
16802: PUSH
16803: LD_INT 27
16805: ST_TO_ADDR
// CreateAndPlaceBuildingXYD ( 33 , 2 , 1 ) ;
16806: LD_INT 33
16808: PPUSH
16809: LD_INT 2
16811: PPUSH
16812: LD_INT 1
16814: PPUSH
16815: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 36 , 3 , 4 ) ;
16819: LD_INT 36
16821: PPUSH
16822: LD_INT 3
16824: PPUSH
16825: LD_INT 4
16827: PPUSH
16828: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 16 , 7 , 0 ) ;
16832: LD_INT 16
16834: PPUSH
16835: LD_INT 7
16837: PPUSH
16838: LD_INT 0
16840: PPUSH
16841: CALL_OW 47
// bc_type = 26 ;
16845: LD_ADDR_OWVAR 42
16849: PUSH
16850: LD_INT 26
16852: ST_TO_ADDR
// CreateAndPlaceBuildingXYD ( 13 , 2 , 3 ) ;
16853: LD_INT 13
16855: PPUSH
16856: LD_INT 2
16858: PPUSH
16859: LD_INT 3
16861: PPUSH
16862: CALL_OW 47
// CreateDepositXY ( 12 , 4 , mat_oil ) ;
16866: LD_INT 12
16868: PPUSH
16869: LD_INT 4
16871: PPUSH
16872: LD_INT 2
16874: PPUSH
16875: CALL_OW 62
// SetResourceVisibility ( 12 , 4 , randomedColors [ 2 ] ) ;
16879: LD_INT 12
16881: PPUSH
16882: LD_INT 4
16884: PPUSH
16885: LD_EXP 51
16889: PUSH
16890: LD_INT 2
16892: ARRAY
16893: PPUSH
16894: CALL_OW 441
// bc_type = 29 ;
16898: LD_ADDR_OWVAR 42
16902: PUSH
16903: LD_INT 29
16905: ST_TO_ADDR
// CreateAndPlaceBuildingXYD ( 12 , 4 , 0 ) ;
16906: LD_INT 12
16908: PPUSH
16909: LD_INT 4
16911: PPUSH
16912: LD_INT 0
16914: PPUSH
16915: CALL_OW 47
// bc_type = 36 ;
16919: LD_ADDR_OWVAR 42
16923: PUSH
16924: LD_INT 36
16926: ST_TO_ADDR
// Am1ControlTower = CreateAndPlaceBuildingXYD ( 8 , 3 , 3 ) ;
16927: LD_ADDR_EXP 58
16931: PUSH
16932: LD_INT 8
16934: PPUSH
16935: LD_INT 3
16937: PPUSH
16938: LD_INT 3
16940: PPUSH
16941: CALL_OW 47
16945: ST_TO_ADDR
// weapon = [ 5 , 4 , 3 , 6 ] ;
16946: LD_ADDR_VAR 0 3
16950: PUSH
16951: LD_INT 5
16953: PUSH
16954: LD_INT 4
16956: PUSH
16957: LD_INT 3
16959: PUSH
16960: LD_INT 6
16962: PUSH
16963: EMPTY
16964: LIST
16965: LIST
16966: LIST
16967: LIST
16968: ST_TO_ADDR
// turret_list := FilterAllUnits ( [ [ f_side , randomedColors [ 2 ] ] , [ f_btype , b_bunker ] ] ) ;
16969: LD_ADDR_VAR 0 2
16973: PUSH
16974: LD_INT 22
16976: PUSH
16977: LD_EXP 51
16981: PUSH
16982: LD_INT 2
16984: ARRAY
16985: PUSH
16986: EMPTY
16987: LIST
16988: LIST
16989: PUSH
16990: LD_INT 30
16992: PUSH
16993: LD_INT 32
16995: PUSH
16996: EMPTY
16997: LIST
16998: LIST
16999: PUSH
17000: EMPTY
17001: LIST
17002: LIST
17003: PPUSH
17004: CALL_OW 69
17008: ST_TO_ADDR
// for i in turret_list do
17009: LD_ADDR_VAR 0 4
17013: PUSH
17014: LD_VAR 0 2
17018: PUSH
17019: FOR_IN
17020: IFFALSE 17050
// begin PlaceWeaponTurret ( i , weapon [ Rand ( 1 , 4 ) ] ) ;
17022: LD_VAR 0 4
17026: PPUSH
17027: LD_VAR 0 3
17031: PUSH
17032: LD_INT 1
17034: PPUSH
17035: LD_INT 4
17037: PPUSH
17038: CALL_OW 12
17042: ARRAY
17043: PPUSH
17044: CALL_OW 431
// end ;
17048: GO 17019
17050: POP
17051: POP
// end ;
17052: LD_VAR 0 1
17056: RET
// export function PlaceAmericanAIBase2 ; var turret_list , weapon , i ; begin
17057: LD_INT 0
17059: PPUSH
17060: PPUSH
17061: PPUSH
17062: PPUSH
// uc_nation = 1 ;
17063: LD_ADDR_OWVAR 21
17067: PUSH
17068: LD_INT 1
17070: ST_TO_ADDR
// uc_side = randomedColors [ 3 ] ;
17071: LD_ADDR_OWVAR 20
17075: PUSH
17076: LD_EXP 51
17080: PUSH
17081: LD_INT 3
17083: ARRAY
17084: ST_TO_ADDR
// bc_type = 1 ;
17085: LD_ADDR_OWVAR 42
17089: PUSH
17090: LD_INT 1
17092: ST_TO_ADDR
// bc_level = DifficultyC ;
17093: LD_ADDR_OWVAR 43
17097: PUSH
17098: LD_EXP 24
17102: ST_TO_ADDR
// Am2Depot = CreateAndPlaceBuildingXYD ( 66 , 4 , 2 ) ;
17103: LD_ADDR_EXP 59
17107: PUSH
17108: LD_INT 66
17110: PPUSH
17111: LD_INT 4
17113: PPUSH
17114: LD_INT 2
17116: PPUSH
17117: CALL_OW 47
17121: ST_TO_ADDR
// SetResourceType ( GetBase ( Am2Depot ) , mat_cans , 20000 [ mat_cans ] ) ;
17122: LD_EXP 59
17126: PPUSH
17127: CALL_OW 274
17131: PPUSH
17132: LD_INT 1
17134: PPUSH
17135: LD_INT 20000
17137: PUSH
17138: LD_INT 1
17140: ARRAY
17141: PPUSH
17142: CALL_OW 277
// SetResourceType ( GetBase ( Am2Depot ) , 2 , 5000 ) ;
17146: LD_EXP 59
17150: PPUSH
17151: CALL_OW 274
17155: PPUSH
17156: LD_INT 2
17158: PPUSH
17159: LD_INT 5000
17161: PPUSH
17162: CALL_OW 277
// bc_type = 5 ;
17166: LD_ADDR_OWVAR 42
17170: PUSH
17171: LD_INT 5
17173: ST_TO_ADDR
// Am2Barrack = CreateAndPlaceBuildingXYD ( 78 , 20 , 5 ) ;
17174: LD_ADDR_EXP 62
17178: PUSH
17179: LD_INT 78
17181: PPUSH
17182: LD_INT 20
17184: PPUSH
17185: LD_INT 5
17187: PPUSH
17188: CALL_OW 47
17192: ST_TO_ADDR
// bc_type = 32 ;
17193: LD_ADDR_OWVAR 42
17197: PUSH
17198: LD_INT 32
17200: ST_TO_ADDR
// CreateAndPlaceBuildingXYD ( 80 , 18 , 5 ) ;
17201: LD_INT 80
17203: PPUSH
17204: LD_INT 18
17206: PPUSH
17207: LD_INT 5
17209: PPUSH
17210: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 82 , 9 , 5 ) ;
17214: LD_INT 82
17216: PPUSH
17217: LD_INT 9
17219: PPUSH
17220: LD_INT 5
17222: PPUSH
17223: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 82 , 12 , 4 ) ;
17227: LD_INT 82
17229: PPUSH
17230: LD_INT 12
17232: PPUSH
17233: LD_INT 4
17235: PPUSH
17236: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 74 , 21 , 5 ) ;
17240: LD_INT 74
17242: PPUSH
17243: LD_INT 21
17245: PPUSH
17246: LD_INT 5
17248: PPUSH
17249: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 72 , 22 , 5 ) ;
17253: LD_INT 72
17255: PPUSH
17256: LD_INT 22
17258: PPUSH
17259: LD_INT 5
17261: PPUSH
17262: CALL_OW 47
// bc_type = b_lab ;
17266: LD_ADDR_OWVAR 42
17270: PUSH
17271: LD_INT 6
17273: ST_TO_ADDR
// bc_kind1 = b_lab_weapon ;
17274: LD_ADDR_OWVAR 44
17278: PUSH
17279: LD_INT 10
17281: ST_TO_ADDR
// bc_kind2 = b_lab_opto ;
17282: LD_ADDR_OWVAR 45
17286: PUSH
17287: LD_INT 15
17289: ST_TO_ADDR
// Am2Lab = CreateAndPlaceBuildingXYD ( 71 , 4 , 3 ) ;
17290: LD_ADDR_EXP 61
17294: PUSH
17295: LD_INT 71
17297: PPUSH
17298: LD_INT 4
17300: PPUSH
17301: LD_INT 3
17303: PPUSH
17304: CALL_OW 47
17308: ST_TO_ADDR
// bc_type = 3 ;
17309: LD_ADDR_OWVAR 42
17313: PUSH
17314: LD_INT 3
17316: ST_TO_ADDR
// Am2Fab = CreateAndPlaceBuildingXYD ( 61 , 6 , 2 ) ;
17317: LD_ADDR_EXP 60
17321: PUSH
17322: LD_INT 61
17324: PPUSH
17325: LD_INT 6
17327: PPUSH
17328: LD_INT 2
17330: PPUSH
17331: CALL_OW 47
17335: ST_TO_ADDR
// bc_type = 17 ;
17336: LD_ADDR_OWVAR 42
17340: PUSH
17341: LD_INT 17
17343: ST_TO_ADDR
// CreateAndPlaceBuildingXYD ( 61 , 3 , 3 ) ;
17344: LD_INT 61
17346: PPUSH
17347: LD_INT 3
17349: PPUSH
17350: LD_INT 3
17352: PPUSH
17353: CALL_OW 47
// bc_type = 19 ;
17357: LD_ADDR_OWVAR 42
17361: PUSH
17362: LD_INT 19
17364: ST_TO_ADDR
// CreateAndPlaceBuildingXYD ( 57 , 2 , 2 ) ;
17365: LD_INT 57
17367: PPUSH
17368: LD_INT 2
17370: PPUSH
17371: LD_INT 2
17373: PPUSH
17374: CALL_OW 47
// bc_type = 16 ;
17378: LD_ADDR_OWVAR 42
17382: PUSH
17383: LD_INT 16
17385: ST_TO_ADDR
// CreateAndPlaceBuildingXYD ( 58 , 6 , 1 ) ;
17386: LD_INT 58
17388: PPUSH
17389: LD_INT 6
17391: PPUSH
17392: LD_INT 1
17394: PPUSH
17395: CALL_OW 47
// bc_type = 20 ;
17399: LD_ADDR_OWVAR 42
17403: PUSH
17404: LD_INT 20
17406: ST_TO_ADDR
// CreateAndPlaceBuildingXYD ( 61 , 10 , 0 ) ;
17407: LD_INT 61
17409: PPUSH
17410: LD_INT 10
17412: PPUSH
17413: LD_INT 0
17415: PPUSH
17416: CALL_OW 47
// bc_type = 27 ;
17420: LD_ADDR_OWVAR 42
17424: PUSH
17425: LD_INT 27
17427: ST_TO_ADDR
// CreateAndPlaceBuildingXYD ( 77 , 2 , 5 ) ;
17428: LD_INT 77
17430: PPUSH
17431: LD_INT 2
17433: PPUSH
17434: LD_INT 5
17436: PPUSH
17437: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 75 , 3 , 4 ) ;
17441: LD_INT 75
17443: PPUSH
17444: LD_INT 3
17446: PPUSH
17447: LD_INT 4
17449: PPUSH
17450: CALL_OW 47
// bc_type = 26 ;
17454: LD_ADDR_OWVAR 42
17458: PUSH
17459: LD_INT 26
17461: ST_TO_ADDR
// CreateAndPlaceBuildingXYD ( 56 , 7 , 2 ) ;
17462: LD_INT 56
17464: PPUSH
17465: LD_INT 7
17467: PPUSH
17468: LD_INT 2
17470: PPUSH
17471: CALL_OW 47
// CreateDepositXY ( 79 , 9 , mat_oil ) ;
17475: LD_INT 79
17477: PPUSH
17478: LD_INT 9
17480: PPUSH
17481: LD_INT 2
17483: PPUSH
17484: CALL_OW 62
// SetResourceVisibility ( 79 , 9 , randomedColors [ 3 ] ) ;
17488: LD_INT 79
17490: PPUSH
17491: LD_INT 9
17493: PPUSH
17494: LD_EXP 51
17498: PUSH
17499: LD_INT 3
17501: ARRAY
17502: PPUSH
17503: CALL_OW 441
// bc_type = 29 ;
17507: LD_ADDR_OWVAR 42
17511: PUSH
17512: LD_INT 29
17514: ST_TO_ADDR
// CreateAndPlaceBuildingXYD ( 79 , 9 , 4 ) ;
17515: LD_INT 79
17517: PPUSH
17518: LD_INT 9
17520: PPUSH
17521: LD_INT 4
17523: PPUSH
17524: CALL_OW 47
// bc_type = 36 ;
17528: LD_ADDR_OWVAR 42
17532: PUSH
17533: LD_INT 36
17535: ST_TO_ADDR
// Am2ControlTower = CreateAndPlaceBuildingXYD ( 52 , 3 , 3 ) ;
17536: LD_ADDR_EXP 63
17540: PUSH
17541: LD_INT 52
17543: PPUSH
17544: LD_INT 3
17546: PPUSH
17547: LD_INT 3
17549: PPUSH
17550: CALL_OW 47
17554: ST_TO_ADDR
// weapon = [ 5 , 4 , 3 , 6 ] ;
17555: LD_ADDR_VAR 0 3
17559: PUSH
17560: LD_INT 5
17562: PUSH
17563: LD_INT 4
17565: PUSH
17566: LD_INT 3
17568: PUSH
17569: LD_INT 6
17571: PUSH
17572: EMPTY
17573: LIST
17574: LIST
17575: LIST
17576: LIST
17577: ST_TO_ADDR
// turret_list := FilterAllUnits ( [ [ f_side , randomedColors [ 3 ] ] , [ f_btype , b_bunker ] ] ) ;
17578: LD_ADDR_VAR 0 2
17582: PUSH
17583: LD_INT 22
17585: PUSH
17586: LD_EXP 51
17590: PUSH
17591: LD_INT 3
17593: ARRAY
17594: PUSH
17595: EMPTY
17596: LIST
17597: LIST
17598: PUSH
17599: LD_INT 30
17601: PUSH
17602: LD_INT 32
17604: PUSH
17605: EMPTY
17606: LIST
17607: LIST
17608: PUSH
17609: EMPTY
17610: LIST
17611: LIST
17612: PPUSH
17613: CALL_OW 69
17617: ST_TO_ADDR
// for i in turret_list do
17618: LD_ADDR_VAR 0 4
17622: PUSH
17623: LD_VAR 0 2
17627: PUSH
17628: FOR_IN
17629: IFFALSE 17659
// begin PlaceWeaponTurret ( i , weapon [ Rand ( 1 , 4 ) ] ) ;
17631: LD_VAR 0 4
17635: PPUSH
17636: LD_VAR 0 3
17640: PUSH
17641: LD_INT 1
17643: PPUSH
17644: LD_INT 4
17646: PPUSH
17647: CALL_OW 12
17651: ARRAY
17652: PPUSH
17653: CALL_OW 431
// end ;
17657: GO 17628
17659: POP
17660: POP
// end ;
17661: LD_VAR 0 1
17665: RET
// export function PlaceRussianAIBase1 ; var turret_list , weapon , i ; begin
17666: LD_INT 0
17668: PPUSH
17669: PPUSH
17670: PPUSH
17671: PPUSH
// uc_nation = 3 ;
17672: LD_ADDR_OWVAR 21
17676: PUSH
17677: LD_INT 3
17679: ST_TO_ADDR
// uc_side = randomedColors [ 2 ] ;
17680: LD_ADDR_OWVAR 20
17684: PUSH
17685: LD_EXP 51
17689: PUSH
17690: LD_INT 2
17692: ARRAY
17693: ST_TO_ADDR
// bc_type = 1 ;
17694: LD_ADDR_OWVAR 42
17698: PUSH
17699: LD_INT 1
17701: ST_TO_ADDR
// bc_level = DifficultyC ;
17702: LD_ADDR_OWVAR 43
17706: PUSH
17707: LD_EXP 24
17711: ST_TO_ADDR
// Ru1Depot = CreateAndPlaceBuildingXYD ( 101 , 81 , 1 ) ;
17712: LD_ADDR_EXP 64
17716: PUSH
17717: LD_INT 101
17719: PPUSH
17720: LD_INT 81
17722: PPUSH
17723: LD_INT 1
17725: PPUSH
17726: CALL_OW 47
17730: ST_TO_ADDR
// SetResourceType ( GetBase ( Ru1Depot ) , mat_cans , 20000 [ mat_cans ] ) ;
17731: LD_EXP 64
17735: PPUSH
17736: CALL_OW 274
17740: PPUSH
17741: LD_INT 1
17743: PPUSH
17744: LD_INT 20000
17746: PUSH
17747: LD_INT 1
17749: ARRAY
17750: PPUSH
17751: CALL_OW 277
// SetResourceType ( GetBase ( Ru1Depot ) , 2 , 5000 ) ;
17755: LD_EXP 64
17759: PPUSH
17760: CALL_OW 274
17764: PPUSH
17765: LD_INT 2
17767: PPUSH
17768: LD_INT 5000
17770: PPUSH
17771: CALL_OW 277
// bc_type = 5 ;
17775: LD_ADDR_OWVAR 42
17779: PUSH
17780: LD_INT 5
17782: ST_TO_ADDR
// Ru1Barrack = CreateAndPlaceBuildingXYD ( 86 , 89 , 1 ) ;
17783: LD_ADDR_EXP 67
17787: PUSH
17788: LD_INT 86
17790: PPUSH
17791: LD_INT 89
17793: PPUSH
17794: LD_INT 1
17796: PPUSH
17797: CALL_OW 47
17801: ST_TO_ADDR
// bc_type = 32 ;
17802: LD_ADDR_OWVAR 42
17806: PUSH
17807: LD_INT 32
17809: ST_TO_ADDR
// CreateAndPlaceBuildingXYD ( 126 , 73 , 3 ) ;
17810: LD_INT 126
17812: PPUSH
17813: LD_INT 73
17815: PPUSH
17816: LD_INT 3
17818: PPUSH
17819: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 118 , 71 , 3 ) ;
17823: LD_INT 118
17825: PPUSH
17826: LD_INT 71
17828: PPUSH
17829: LD_INT 3
17831: PPUSH
17832: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 115 , 70 , 3 ) ;
17836: LD_INT 115
17838: PPUSH
17839: LD_INT 70
17841: PPUSH
17842: LD_INT 3
17844: PPUSH
17845: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 107 , 68 , 3 ) ;
17849: LD_INT 107
17851: PPUSH
17852: LD_INT 68
17854: PPUSH
17855: LD_INT 3
17857: PPUSH
17858: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 92 , 65 , 3 ) ;
17862: LD_INT 92
17864: PPUSH
17865: LD_INT 65
17867: PPUSH
17868: LD_INT 3
17870: PPUSH
17871: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 89 , 66 , 2 ) ;
17875: LD_INT 89
17877: PPUSH
17878: LD_INT 66
17880: PPUSH
17881: LD_INT 2
17883: PPUSH
17884: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 92 , 104 , 1 ) ;
17888: LD_INT 92
17890: PPUSH
17891: LD_INT 104
17893: PPUSH
17894: LD_INT 1
17896: PPUSH
17897: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 90 , 100 , 1 ) ;
17901: LD_INT 90
17903: PPUSH
17904: LD_INT 100
17906: PPUSH
17907: LD_INT 1
17909: PPUSH
17910: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 78 , 89 , 2 ) ;
17914: LD_INT 78
17916: PPUSH
17917: LD_INT 89
17919: PPUSH
17920: LD_INT 2
17922: PPUSH
17923: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 128 , 112 , 0 ) ;
17927: LD_INT 128
17929: PPUSH
17930: LD_INT 112
17932: PPUSH
17933: LD_INT 0
17935: PPUSH
17936: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 116 , 108 , 0 ) ;
17940: LD_INT 116
17942: PPUSH
17943: LD_INT 108
17945: PPUSH
17946: LD_INT 0
17948: PPUSH
17949: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 119 , 110 , 0 ) ;
17953: LD_INT 119
17955: PPUSH
17956: LD_INT 110
17958: PPUSH
17959: LD_INT 0
17961: PPUSH
17962: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 134 , 112 , 5 ) ;
17966: LD_INT 134
17968: PPUSH
17969: LD_INT 112
17971: PPUSH
17972: LD_INT 5
17974: PPUSH
17975: CALL_OW 47
// bc_type = b_lab ;
17979: LD_ADDR_OWVAR 42
17983: PUSH
17984: LD_INT 6
17986: ST_TO_ADDR
// bc_kind1 = b_lab_weapon ;
17987: LD_ADDR_OWVAR 44
17991: PUSH
17992: LD_INT 10
17994: ST_TO_ADDR
// bc_kind2 = b_lab_computer ;
17995: LD_ADDR_OWVAR 45
17999: PUSH
18000: LD_INT 12
18002: ST_TO_ADDR
// Ru1Lab = CreateAndPlaceBuildingXYD ( 104 , 88 , 1 ) ;
18003: LD_ADDR_EXP 66
18007: PUSH
18008: LD_INT 104
18010: PPUSH
18011: LD_INT 88
18013: PPUSH
18014: LD_INT 1
18016: PPUSH
18017: CALL_OW 47
18021: ST_TO_ADDR
// bc_type = 3 ;
18022: LD_ADDR_OWVAR 42
18026: PUSH
18027: LD_INT 3
18029: ST_TO_ADDR
// Ru1Fab = CreateAndPlaceBuildingXYD ( 126 , 85 , 3 ) ;
18030: LD_ADDR_EXP 65
18034: PUSH
18035: LD_INT 126
18037: PPUSH
18038: LD_INT 85
18040: PPUSH
18041: LD_INT 3
18043: PPUSH
18044: CALL_OW 47
18048: ST_TO_ADDR
// bc_type = 17 ;
18049: LD_ADDR_OWVAR 42
18053: PUSH
18054: LD_INT 17
18056: ST_TO_ADDR
// CreateAndPlaceBuildingXYD ( 130 , 89 , 5 ) ;
18057: LD_INT 130
18059: PPUSH
18060: LD_INT 89
18062: PPUSH
18063: LD_INT 5
18065: PPUSH
18066: CALL_OW 47
// bc_type = 19 ;
18070: LD_ADDR_OWVAR 42
18074: PUSH
18075: LD_INT 19
18077: ST_TO_ADDR
// CreateAndPlaceBuildingXYD ( 129 , 85 , 4 ) ;
18078: LD_INT 129
18080: PPUSH
18081: LD_INT 85
18083: PPUSH
18084: LD_INT 4
18086: PPUSH
18087: CALL_OW 47
// bc_type = 16 ;
18091: LD_ADDR_OWVAR 42
18095: PUSH
18096: LD_INT 16
18098: ST_TO_ADDR
// CreateAndPlaceBuildingXYD ( 126 , 81 , 3 ) ;
18099: LD_INT 126
18101: PPUSH
18102: LD_INT 81
18104: PPUSH
18105: LD_INT 3
18107: PPUSH
18108: CALL_OW 47
// bc_type = 24 ;
18112: LD_ADDR_OWVAR 42
18116: PUSH
18117: LD_INT 24
18119: ST_TO_ADDR
// CreateAndPlaceBuildingXYD ( 123 , 82 , 2 ) ;
18120: LD_INT 123
18122: PPUSH
18123: LD_INT 82
18125: PPUSH
18126: LD_INT 2
18128: PPUSH
18129: CALL_OW 47
// bc_type = 26 ;
18133: LD_ADDR_OWVAR 42
18137: PUSH
18138: LD_INT 26
18140: ST_TO_ADDR
// CreateAndPlaceBuildingXYD ( 113 , 86 , 4 ) ;
18141: LD_INT 113
18143: PPUSH
18144: LD_INT 86
18146: PPUSH
18147: LD_INT 4
18149: PPUSH
18150: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 116 , 88 , 4 ) ;
18154: LD_INT 116
18156: PPUSH
18157: LD_INT 88
18159: PPUSH
18160: LD_INT 4
18162: PPUSH
18163: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 115 , 90 , 4 ) ;
18167: LD_INT 115
18169: PPUSH
18170: LD_INT 90
18172: PPUSH
18173: LD_INT 4
18175: PPUSH
18176: CALL_OW 47
// CreateDepositXY ( 117 , 82 , mat_oil ) ;
18180: LD_INT 117
18182: PPUSH
18183: LD_INT 82
18185: PPUSH
18186: LD_INT 2
18188: PPUSH
18189: CALL_OW 62
// CreateDepositXY ( 93 , 79 , mat_oil ) ;
18193: LD_INT 93
18195: PPUSH
18196: LD_INT 79
18198: PPUSH
18199: LD_INT 2
18201: PPUSH
18202: CALL_OW 62
// SetResourceVisibility ( 117 , 82 , randomedColors [ 2 ] ) ;
18206: LD_INT 117
18208: PPUSH
18209: LD_INT 82
18211: PPUSH
18212: LD_EXP 51
18216: PUSH
18217: LD_INT 2
18219: ARRAY
18220: PPUSH
18221: CALL_OW 441
// SetResourceVisibility ( 93 , 79 , randomedColors [ 2 ] ) ;
18225: LD_INT 93
18227: PPUSH
18228: LD_INT 79
18230: PPUSH
18231: LD_EXP 51
18235: PUSH
18236: LD_INT 2
18238: ARRAY
18239: PPUSH
18240: CALL_OW 441
// bc_type = 29 ;
18244: LD_ADDR_OWVAR 42
18248: PUSH
18249: LD_INT 29
18251: ST_TO_ADDR
// CreateAndPlaceBuildingXYD ( 117 , 82 , 3 ) ;
18252: LD_INT 117
18254: PPUSH
18255: LD_INT 82
18257: PPUSH
18258: LD_INT 3
18260: PPUSH
18261: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 93 , 79 , 3 ) ;
18265: LD_INT 93
18267: PPUSH
18268: LD_INT 79
18270: PPUSH
18271: LD_INT 3
18273: PPUSH
18274: CALL_OW 47
// weapon = [ 43 , 44 , 46 ] ;
18278: LD_ADDR_VAR 0 3
18282: PUSH
18283: LD_INT 43
18285: PUSH
18286: LD_INT 44
18288: PUSH
18289: LD_INT 46
18291: PUSH
18292: EMPTY
18293: LIST
18294: LIST
18295: LIST
18296: ST_TO_ADDR
// turret_list := FilterAllUnits ( [ [ f_side , randomedColors [ 2 ] ] , [ f_btype , b_bunker ] ] ) ;
18297: LD_ADDR_VAR 0 2
18301: PUSH
18302: LD_INT 22
18304: PUSH
18305: LD_EXP 51
18309: PUSH
18310: LD_INT 2
18312: ARRAY
18313: PUSH
18314: EMPTY
18315: LIST
18316: LIST
18317: PUSH
18318: LD_INT 30
18320: PUSH
18321: LD_INT 32
18323: PUSH
18324: EMPTY
18325: LIST
18326: LIST
18327: PUSH
18328: EMPTY
18329: LIST
18330: LIST
18331: PPUSH
18332: CALL_OW 69
18336: ST_TO_ADDR
// for i in turret_list do
18337: LD_ADDR_VAR 0 4
18341: PUSH
18342: LD_VAR 0 2
18346: PUSH
18347: FOR_IN
18348: IFFALSE 18378
// begin PlaceWeaponTurret ( i , weapon [ Rand ( 1 , 3 ) ] ) ;
18350: LD_VAR 0 4
18354: PPUSH
18355: LD_VAR 0 3
18359: PUSH
18360: LD_INT 1
18362: PPUSH
18363: LD_INT 3
18365: PPUSH
18366: CALL_OW 12
18370: ARRAY
18371: PPUSH
18372: CALL_OW 431
// end ;
18376: GO 18347
18378: POP
18379: POP
// end ;
18380: LD_VAR 0 1
18384: RET
// export function PlaceRussianAIBase2 ; var turret_list , weapon , i ; begin
18385: LD_INT 0
18387: PPUSH
18388: PPUSH
18389: PPUSH
18390: PPUSH
// uc_nation = 3 ;
18391: LD_ADDR_OWVAR 21
18395: PUSH
18396: LD_INT 3
18398: ST_TO_ADDR
// uc_side = randomedColors [ 3 ] ;
18399: LD_ADDR_OWVAR 20
18403: PUSH
18404: LD_EXP 51
18408: PUSH
18409: LD_INT 3
18411: ARRAY
18412: ST_TO_ADDR
// bc_type = 1 ;
18413: LD_ADDR_OWVAR 42
18417: PUSH
18418: LD_INT 1
18420: ST_TO_ADDR
// bc_level = DifficultyC ;
18421: LD_ADDR_OWVAR 43
18425: PUSH
18426: LD_EXP 24
18430: ST_TO_ADDR
// Ru2Depot = CreateAndPlaceBuildingXYD ( 97 , 155 , 0 ) ;
18431: LD_ADDR_EXP 68
18435: PUSH
18436: LD_INT 97
18438: PPUSH
18439: LD_INT 155
18441: PPUSH
18442: LD_INT 0
18444: PPUSH
18445: CALL_OW 47
18449: ST_TO_ADDR
// SetResourceType ( GetBase ( Ru2Depot ) , mat_cans , 20000 [ mat_cans ] ) ;
18450: LD_EXP 68
18454: PPUSH
18455: CALL_OW 274
18459: PPUSH
18460: LD_INT 1
18462: PPUSH
18463: LD_INT 20000
18465: PUSH
18466: LD_INT 1
18468: ARRAY
18469: PPUSH
18470: CALL_OW 277
// SetResourceType ( GetBase ( Ru2Depot ) , 2 , 5000 ) ;
18474: LD_EXP 68
18478: PPUSH
18479: CALL_OW 274
18483: PPUSH
18484: LD_INT 2
18486: PPUSH
18487: LD_INT 5000
18489: PPUSH
18490: CALL_OW 277
// bc_type = 5 ;
18494: LD_ADDR_OWVAR 42
18498: PUSH
18499: LD_INT 5
18501: ST_TO_ADDR
// Ru2Barrack = CreateAndPlaceBuildingXYD ( 102 , 142 , 3 ) ;
18502: LD_ADDR_EXP 71
18506: PUSH
18507: LD_INT 102
18509: PPUSH
18510: LD_INT 142
18512: PPUSH
18513: LD_INT 3
18515: PPUSH
18516: CALL_OW 47
18520: ST_TO_ADDR
// bc_type = 32 ;
18521: LD_ADDR_OWVAR 42
18525: PUSH
18526: LD_INT 32
18528: ST_TO_ADDR
// CreateAndPlaceBuildingXYD ( 110 , 146 , 3 ) ;
18529: LD_INT 110
18531: PPUSH
18532: LD_INT 146
18534: PPUSH
18535: LD_INT 3
18537: PPUSH
18538: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 114 , 155 , 4 ) ;
18542: LD_INT 114
18544: PPUSH
18545: LD_INT 155
18547: PPUSH
18548: LD_INT 4
18550: PPUSH
18551: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 115 , 158 , 4 ) ;
18555: LD_INT 115
18557: PPUSH
18558: LD_INT 158
18560: PPUSH
18561: LD_INT 4
18563: PPUSH
18564: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 85 , 130 , 2 ) ;
18568: LD_INT 85
18570: PPUSH
18571: LD_INT 130
18573: PPUSH
18574: LD_INT 2
18576: PPUSH
18577: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 79 , 130 , 2 ) ;
18581: LD_INT 79
18583: PPUSH
18584: LD_INT 130
18586: PPUSH
18587: LD_INT 2
18589: PPUSH
18590: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 76 , 131 , 2 ) ;
18594: LD_INT 76
18596: PPUSH
18597: LD_INT 131
18599: PPUSH
18600: LD_INT 2
18602: PPUSH
18603: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 71 , 132 , 2 ) ;
18607: LD_INT 71
18609: PPUSH
18610: LD_INT 132
18612: PPUSH
18613: LD_INT 2
18615: PPUSH
18616: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 107 , 145 , 3 ) ;
18620: LD_INT 107
18622: PPUSH
18623: LD_INT 145
18625: PPUSH
18626: LD_INT 3
18628: PPUSH
18629: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 116 , 165 , 4 ) ;
18633: LD_INT 116
18635: PPUSH
18636: LD_INT 165
18638: PPUSH
18639: LD_INT 4
18641: PPUSH
18642: CALL_OW 47
// bc_type = b_lab ;
18646: LD_ADDR_OWVAR 42
18650: PUSH
18651: LD_INT 6
18653: ST_TO_ADDR
// bc_kind1 = b_lab_weapon ;
18654: LD_ADDR_OWVAR 44
18658: PUSH
18659: LD_INT 10
18661: ST_TO_ADDR
// bc_kind2 = b_lab_computer ;
18662: LD_ADDR_OWVAR 45
18666: PUSH
18667: LD_INT 12
18669: ST_TO_ADDR
// Ru2Lab = CreateAndPlaceBuildingXYD ( 88 , 151 , 0 ) ;
18670: LD_ADDR_EXP 70
18674: PUSH
18675: LD_INT 88
18677: PPUSH
18678: LD_INT 151
18680: PPUSH
18681: LD_INT 0
18683: PPUSH
18684: CALL_OW 47
18688: ST_TO_ADDR
// bc_type = 3 ;
18689: LD_ADDR_OWVAR 42
18693: PUSH
18694: LD_INT 3
18696: ST_TO_ADDR
// Ru2Fab = CreateAndPlaceBuildingXYD ( 93 , 142 , 3 ) ;
18697: LD_ADDR_EXP 69
18701: PUSH
18702: LD_INT 93
18704: PPUSH
18705: LD_INT 142
18707: PPUSH
18708: LD_INT 3
18710: PPUSH
18711: CALL_OW 47
18715: ST_TO_ADDR
// bc_type = 17 ;
18716: LD_ADDR_OWVAR 42
18720: PUSH
18721: LD_INT 17
18723: ST_TO_ADDR
// CreateAndPlaceBuildingXYD ( 97 , 146 , 5 ) ;
18724: LD_INT 97
18726: PPUSH
18727: LD_INT 146
18729: PPUSH
18730: LD_INT 5
18732: PPUSH
18733: CALL_OW 47
// bc_type = 19 ;
18737: LD_ADDR_OWVAR 42
18741: PUSH
18742: LD_INT 19
18744: ST_TO_ADDR
// CreateAndPlaceBuildingXYD ( 96 , 142 , 4 ) ;
18745: LD_INT 96
18747: PPUSH
18748: LD_INT 142
18750: PPUSH
18751: LD_INT 4
18753: PPUSH
18754: CALL_OW 47
// bc_type = 16 ;
18758: LD_ADDR_OWVAR 42
18762: PUSH
18763: LD_INT 16
18765: ST_TO_ADDR
// CreateAndPlaceBuildingXYD ( 93 , 138 , 3 ) ;
18766: LD_INT 93
18768: PPUSH
18769: LD_INT 138
18771: PPUSH
18772: LD_INT 3
18774: PPUSH
18775: CALL_OW 47
// bc_type = 24 ;
18779: LD_ADDR_OWVAR 42
18783: PUSH
18784: LD_INT 24
18786: ST_TO_ADDR
// CreateAndPlaceBuildingXYD ( 90 , 139 , 2 ) ;
18787: LD_INT 90
18789: PPUSH
18790: LD_INT 139
18792: PPUSH
18793: LD_INT 2
18795: PPUSH
18796: CALL_OW 47
// bc_type = 26 ;
18800: LD_ADDR_OWVAR 42
18804: PUSH
18805: LD_INT 26
18807: ST_TO_ADDR
// CreateAndPlaceBuildingXYD ( 97 , 160 , 4 ) ;
18808: LD_INT 97
18810: PPUSH
18811: LD_INT 160
18813: PPUSH
18814: LD_INT 4
18816: PPUSH
18817: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 100 , 161 , 4 ) ;
18821: LD_INT 100
18823: PPUSH
18824: LD_INT 161
18826: PPUSH
18827: LD_INT 4
18829: PPUSH
18830: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 99 , 163 , 4 ) ;
18834: LD_INT 99
18836: PPUSH
18837: LD_INT 163
18839: PPUSH
18840: LD_INT 4
18842: PPUSH
18843: CALL_OW 47
// CreateDepositXY ( 81 , 150 , mat_oil ) ;
18847: LD_INT 81
18849: PPUSH
18850: LD_INT 150
18852: PPUSH
18853: LD_INT 2
18855: PPUSH
18856: CALL_OW 62
// CreateDepositXY ( 86 , 156 , mat_oil ) ;
18860: LD_INT 86
18862: PPUSH
18863: LD_INT 156
18865: PPUSH
18866: LD_INT 2
18868: PPUSH
18869: CALL_OW 62
// SetResourceVisibility ( 81 , 150 , randomedColors [ 3 ] ) ;
18873: LD_INT 81
18875: PPUSH
18876: LD_INT 150
18878: PPUSH
18879: LD_EXP 51
18883: PUSH
18884: LD_INT 3
18886: ARRAY
18887: PPUSH
18888: CALL_OW 441
// SetResourceVisibility ( 86 , 156 , randomedColors [ 3 ] ) ;
18892: LD_INT 86
18894: PPUSH
18895: LD_INT 156
18897: PPUSH
18898: LD_EXP 51
18902: PUSH
18903: LD_INT 3
18905: ARRAY
18906: PPUSH
18907: CALL_OW 441
// bc_type = 29 ;
18911: LD_ADDR_OWVAR 42
18915: PUSH
18916: LD_INT 29
18918: ST_TO_ADDR
// CreateAndPlaceBuildingXYD ( 81 , 150 , 4 ) ;
18919: LD_INT 81
18921: PPUSH
18922: LD_INT 150
18924: PPUSH
18925: LD_INT 4
18927: PPUSH
18928: CALL_OW 47
// CreateAndPlaceBuildingXYD ( 86 , 156 , 4 ) ;
18932: LD_INT 86
18934: PPUSH
18935: LD_INT 156
18937: PPUSH
18938: LD_INT 4
18940: PPUSH
18941: CALL_OW 47
// weapon = [ 43 , 44 , 46 ] ;
18945: LD_ADDR_VAR 0 3
18949: PUSH
18950: LD_INT 43
18952: PUSH
18953: LD_INT 44
18955: PUSH
18956: LD_INT 46
18958: PUSH
18959: EMPTY
18960: LIST
18961: LIST
18962: LIST
18963: ST_TO_ADDR
// turret_list := FilterAllUnits ( [ [ f_side , randomedColors [ 3 ] ] , [ f_btype , b_bunker ] ] ) ;
18964: LD_ADDR_VAR 0 2
18968: PUSH
18969: LD_INT 22
18971: PUSH
18972: LD_EXP 51
18976: PUSH
18977: LD_INT 3
18979: ARRAY
18980: PUSH
18981: EMPTY
18982: LIST
18983: LIST
18984: PUSH
18985: LD_INT 30
18987: PUSH
18988: LD_INT 32
18990: PUSH
18991: EMPTY
18992: LIST
18993: LIST
18994: PUSH
18995: EMPTY
18996: LIST
18997: LIST
18998: PPUSH
18999: CALL_OW 69
19003: ST_TO_ADDR
// for i in turret_list do
19004: LD_ADDR_VAR 0 4
19008: PUSH
19009: LD_VAR 0 2
19013: PUSH
19014: FOR_IN
19015: IFFALSE 19045
// begin PlaceWeaponTurret ( i , weapon [ Rand ( 1 , 3 ) ] ) ;
19017: LD_VAR 0 4
19021: PPUSH
19022: LD_VAR 0 3
19026: PUSH
19027: LD_INT 1
19029: PPUSH
19030: LD_INT 3
19032: PPUSH
19033: CALL_OW 12
19037: ARRAY
19038: PPUSH
19039: CALL_OW 431
// end ;
19043: GO 19014
19045: POP
19046: POP
// end ; end_of_file
19047: LD_VAR 0 1
19051: RET
// every 20 20$1 trigger ai_russian1 = 1 and ai_russian2 = 1 do
19052: LD_EXP 22
19056: PUSH
19057: LD_INT 1
19059: EQUAL
19060: PUSH
19061: LD_EXP 23
19065: PUSH
19066: LD_INT 1
19068: EQUAL
19069: AND
19070: IFFALSE 19136
19072: GO 19074
19074: DISABLE
// begin enable ;
19075: ENABLE
// RespawnAttackVehicle ( RussianSpawn , randomedColors [ 4 ] , 5 , difficultyC , 3 , 1 , 1 , [ 43 , 44 , 46 ] , [ ] , [ ] , RussianRepairArea , 68 , 10 ) ;
19076: LD_INT 18
19078: PPUSH
19079: LD_EXP 51
19083: PUSH
19084: LD_INT 4
19086: ARRAY
19087: PPUSH
19088: LD_INT 5
19090: PPUSH
19091: LD_EXP 24
19095: PPUSH
19096: LD_INT 3
19098: PPUSH
19099: LD_INT 1
19101: PPUSH
19102: LD_INT 1
19104: PPUSH
19105: LD_INT 43
19107: PUSH
19108: LD_INT 44
19110: PUSH
19111: LD_INT 46
19113: PUSH
19114: EMPTY
19115: LIST
19116: LIST
19117: LIST
19118: PPUSH
19119: EMPTY
19120: PPUSH
19121: EMPTY
19122: PPUSH
19123: LD_INT 19
19125: PPUSH
19126: LD_INT 68
19128: PPUSH
19129: LD_INT 10
19131: PPUSH
19132: CALL 11814 0 13
// end ;
19136: END
// every 20 20$1 trigger ai_russian1 = 1 and ai_russian2 = 1 do
19137: LD_EXP 22
19141: PUSH
19142: LD_INT 1
19144: EQUAL
19145: PUSH
19146: LD_EXP 23
19150: PUSH
19151: LD_INT 1
19153: EQUAL
19154: AND
19155: IFFALSE 19209
19157: GO 19159
19159: DISABLE
// begin enable ;
19160: ENABLE
// RespawnAttackInfantry ( randomedColors [ 4 ] , 3 , 10 , 0 , 0 , 0 , 2 , difficultyC , RussianSpawn , RussianHealArea , 68 , 10 ) ;
19161: LD_EXP 51
19165: PUSH
19166: LD_INT 4
19168: ARRAY
19169: PPUSH
19170: LD_INT 3
19172: PPUSH
19173: LD_INT 10
19175: PPUSH
19176: LD_INT 0
19178: PPUSH
19179: LD_INT 0
19181: PPUSH
19182: LD_INT 0
19184: PPUSH
19185: LD_INT 2
19187: PPUSH
19188: LD_EXP 24
19192: PPUSH
19193: LD_INT 18
19195: PPUSH
19196: LD_INT 20
19198: PPUSH
19199: LD_INT 68
19201: PPUSH
19202: LD_INT 10
19204: PPUSH
19205: CALL 10577 0 12
// end ;
19209: END
// every 25 25$1 trigger ai_russian1 = 1 and ai_russian2 = 1 do
19210: LD_EXP 22
19214: PUSH
19215: LD_INT 1
19217: EQUAL
19218: PUSH
19219: LD_EXP 23
19223: PUSH
19224: LD_INT 1
19226: EQUAL
19227: AND
19228: IFFALSE 19294
19230: GO 19232
19232: DISABLE
// begin RespawnAttackVehicle ( RussianSpawn , randomedColors [ 5 ] , 5 , difficultyC , 3 , 1 , 1 , [ 43 , 44 , 46 ] , [ ] , [ ] , RussianRepairArea , 26 , 10 ) ;
19233: LD_INT 18
19235: PPUSH
19236: LD_EXP 51
19240: PUSH
19241: LD_INT 5
19243: ARRAY
19244: PPUSH
19245: LD_INT 5
19247: PPUSH
19248: LD_EXP 24
19252: PPUSH
19253: LD_INT 3
19255: PPUSH
19256: LD_INT 1
19258: PPUSH
19259: LD_INT 1
19261: PPUSH
19262: LD_INT 43
19264: PUSH
19265: LD_INT 44
19267: PUSH
19268: LD_INT 46
19270: PUSH
19271: EMPTY
19272: LIST
19273: LIST
19274: LIST
19275: PPUSH
19276: EMPTY
19277: PPUSH
19278: EMPTY
19279: PPUSH
19280: LD_INT 19
19282: PPUSH
19283: LD_INT 26
19285: PPUSH
19286: LD_INT 10
19288: PPUSH
19289: CALL 11814 0 13
// enable ;
19293: ENABLE
// end ;
19294: END
// every 25 25$1 trigger ai_russian1 = 1 and ai_russian2 = 1 do
19295: LD_EXP 22
19299: PUSH
19300: LD_INT 1
19302: EQUAL
19303: PUSH
19304: LD_EXP 23
19308: PUSH
19309: LD_INT 1
19311: EQUAL
19312: AND
19313: IFFALSE 19367
19315: GO 19317
19317: DISABLE
// begin RespawnAttackInfantry ( randomedColors [ 5 ] , 3 , 10 , 0 , 0 , 0 , 2 , difficultyC , RussianSpawn , RussianHealArea , 26 , 10 ) ;
19318: LD_EXP 51
19322: PUSH
19323: LD_INT 5
19325: ARRAY
19326: PPUSH
19327: LD_INT 3
19329: PPUSH
19330: LD_INT 10
19332: PPUSH
19333: LD_INT 0
19335: PPUSH
19336: LD_INT 0
19338: PPUSH
19339: LD_INT 0
19341: PPUSH
19342: LD_INT 2
19344: PPUSH
19345: LD_EXP 24
19349: PPUSH
19350: LD_INT 18
19352: PPUSH
19353: LD_INT 20
19355: PPUSH
19356: LD_INT 26
19358: PPUSH
19359: LD_INT 10
19361: PPUSH
19362: CALL 10577 0 12
// enable ;
19366: ENABLE
// end ;
19367: END
// every 20 20$1 trigger ai_american1 = 1 and ai_american2 = 1 do
19368: LD_EXP 20
19372: PUSH
19373: LD_INT 1
19375: EQUAL
19376: PUSH
19377: LD_EXP 21
19381: PUSH
19382: LD_INT 1
19384: EQUAL
19385: AND
19386: IFFALSE 19452
19388: GO 19390
19390: DISABLE
// begin enable ;
19391: ENABLE
// RespawnAttackVehicle ( AmericanSpawn1 , randomedColors [ 4 ] , 5 , difficultyC , 1 , 1 , 1 , [ ] , [ ] , [ 4 , 5 , 6 ] , AmericanRepairArea , 109 , 87 ) ;
19392: LD_INT 21
19394: PPUSH
19395: LD_EXP 51
19399: PUSH
19400: LD_INT 4
19402: ARRAY
19403: PPUSH
19404: LD_INT 5
19406: PPUSH
19407: LD_EXP 24
19411: PPUSH
19412: LD_INT 1
19414: PPUSH
19415: LD_INT 1
19417: PPUSH
19418: LD_INT 1
19420: PPUSH
19421: EMPTY
19422: PPUSH
19423: EMPTY
19424: PPUSH
19425: LD_INT 4
19427: PUSH
19428: LD_INT 5
19430: PUSH
19431: LD_INT 6
19433: PUSH
19434: EMPTY
19435: LIST
19436: LIST
19437: LIST
19438: PPUSH
19439: LD_INT 23
19441: PPUSH
19442: LD_INT 109
19444: PPUSH
19445: LD_INT 87
19447: PPUSH
19448: CALL 11814 0 13
// end ;
19452: END
// every 20 20$1 trigger ai_american1 = 1 and ai_american2 = 1 do
19453: LD_EXP 20
19457: PUSH
19458: LD_INT 1
19460: EQUAL
19461: PUSH
19462: LD_EXP 21
19466: PUSH
19467: LD_INT 1
19469: EQUAL
19470: AND
19471: IFFALSE 19525
19473: GO 19475
19475: DISABLE
// begin enable ;
19476: ENABLE
// RespawnAttackInfantry ( randomedColors [ 4 ] , 1 , 10 , 0 , 0 , 0 , 2 , difficultyC , AmericanSpawn1 , AmericanRepairArea , 109 , 87 ) ;
19477: LD_EXP 51
19481: PUSH
19482: LD_INT 4
19484: ARRAY
19485: PPUSH
19486: LD_INT 1
19488: PPUSH
19489: LD_INT 10
19491: PPUSH
19492: LD_INT 0
19494: PPUSH
19495: LD_INT 0
19497: PPUSH
19498: LD_INT 0
19500: PPUSH
19501: LD_INT 2
19503: PPUSH
19504: LD_EXP 24
19508: PPUSH
19509: LD_INT 21
19511: PPUSH
19512: LD_INT 23
19514: PPUSH
19515: LD_INT 109
19517: PPUSH
19518: LD_INT 87
19520: PPUSH
19521: CALL 10577 0 12
// end ;
19525: END
// every 25 25$1 trigger ai_american1 = 1 and ai_american2 = 1 do
19526: LD_EXP 20
19530: PUSH
19531: LD_INT 1
19533: EQUAL
19534: PUSH
19535: LD_EXP 21
19539: PUSH
19540: LD_INT 1
19542: EQUAL
19543: AND
19544: IFFALSE 19610
19546: GO 19548
19548: DISABLE
// begin enable ;
19549: ENABLE
// RespawnAttackVehicle ( AmericanSpawn2 , randomedColors [ 5 ] , 5 , difficultyC , 1 , 1 , 1 , [ ] , [ ] , [ 4 , 5 , 6 ] , American2HealArea , 93 , 148 ) ;
19550: LD_INT 22
19552: PPUSH
19553: LD_EXP 51
19557: PUSH
19558: LD_INT 5
19560: ARRAY
19561: PPUSH
19562: LD_INT 5
19564: PPUSH
19565: LD_EXP 24
19569: PPUSH
19570: LD_INT 1
19572: PPUSH
19573: LD_INT 1
19575: PPUSH
19576: LD_INT 1
19578: PPUSH
19579: EMPTY
19580: PPUSH
19581: EMPTY
19582: PPUSH
19583: LD_INT 4
19585: PUSH
19586: LD_INT 5
19588: PUSH
19589: LD_INT 6
19591: PUSH
19592: EMPTY
19593: LIST
19594: LIST
19595: LIST
19596: PPUSH
19597: LD_INT 15
19599: PPUSH
19600: LD_INT 93
19602: PPUSH
19603: LD_INT 148
19605: PPUSH
19606: CALL 11814 0 13
// end ;
19610: END
// every 25 25$1 trigger ai_american1 = 1 and ai_american2 = 1 do
19611: LD_EXP 20
19615: PUSH
19616: LD_INT 1
19618: EQUAL
19619: PUSH
19620: LD_EXP 21
19624: PUSH
19625: LD_INT 1
19627: EQUAL
19628: AND
19629: IFFALSE 19683
19631: GO 19633
19633: DISABLE
// begin enable ;
19634: ENABLE
// RespawnAttackInfantry ( randomedColors [ 5 ] , 1 , 10 , 0 , 0 , 0 , 2 , difficultyC , AmericanSpawn2 , American2HealArea , 109 , 87 ) ;
19635: LD_EXP 51
19639: PUSH
19640: LD_INT 5
19642: ARRAY
19643: PPUSH
19644: LD_INT 1
19646: PPUSH
19647: LD_INT 10
19649: PPUSH
19650: LD_INT 0
19652: PPUSH
19653: LD_INT 0
19655: PPUSH
19656: LD_INT 0
19658: PPUSH
19659: LD_INT 2
19661: PPUSH
19662: LD_EXP 24
19666: PPUSH
19667: LD_INT 22
19669: PPUSH
19670: LD_INT 15
19672: PPUSH
19673: LD_INT 109
19675: PPUSH
19676: LD_INT 87
19678: PPUSH
19679: CALL 10577 0 12
// end ; end_of_file
19683: END
// every 0 0$10 trigger FilterAllUnits ( [ f_side , randomedColors [ 2 ] ] ) = 0 and FilterAllUnits ( [ f_side , randomedColors [ 3 ] ] ) = 0 do
19684: LD_INT 22
19686: PUSH
19687: LD_EXP 51
19691: PUSH
19692: LD_INT 2
19694: ARRAY
19695: PUSH
19696: EMPTY
19697: LIST
19698: LIST
19699: PPUSH
19700: CALL_OW 69
19704: PUSH
19705: LD_INT 0
19707: EQUAL
19708: PUSH
19709: LD_INT 22
19711: PUSH
19712: LD_EXP 51
19716: PUSH
19717: LD_INT 3
19719: ARRAY
19720: PUSH
19721: EMPTY
19722: LIST
19723: LIST
19724: PPUSH
19725: CALL_OW 69
19729: PUSH
19730: LD_INT 0
19732: EQUAL
19733: AND
19734: IFFALSE 19743
19736: GO 19738
19738: DISABLE
// begin YouWinInMultiplayer ;
19739: CALL_OW 106
// end ;
19743: END
